Te.exe命令選項
使用方式
<te.exe test_binaries> [/appendWttLogging] [/breakOnCreate] [/breakOnError] [/breakOnInvoke] [/coloredConsoleOutput] [ /console:flushWrites] []/console:position=[x,y | current] [/console:size=<x,y>] [ /console:topmost ] [/defaultAppDomain] [/disableConsoleLogging] [/disableTimeouts] [/dpiaware ] [/enableWttLogging] [/inproc] [/isolationLevel] [/labMode] [/list] [/listProperties] [/logFile:name>] [/logOutput:<<mode>] [/miniDumpOnCrash] [/miniDumpOnError] [/name:<testname>] [/outputFolder:<folderName] [/p:<ParamName>>=<ParamValue>] [/parallel] [/persistPictResults] [/pict:<OptionName=<OptionValue>] [/rebootStateFile] [/reportLoadingIssue] [/runas:<RunAsType>] [/runIgnoredTests] [/runon:<MachineName>>] [/screenCaptureOnError] [/select:<query>] [/sessionTimeout:<value>] [/stackFrameCount:<value>] [/stackTraceOnError] [/terminateOnFirstFailure] [/testDependencies:<files>] [/testmode:Loop] [/testmode:Stress] [/testTimeout<:value] [/unicodeOutput:<true/false>] [/version] [/wttDeviceString:<value>>] [/wttDeviceStringSuffix:<value>]
選取/執行命令
test_binaries
指定要執行的一或多個測試檔案(以空格分隔)。 支援使用萬用字元。
te.exe test1.dll
解譯: 在 test1.dll 中執行所有測試。
te.exe test1.dll test2.dll test3.dll
解譯: 在test1.dll、test2.dll和test3.dll中執行所有測試。
te.exe *.dll
解譯: 在目前目錄中的所有 dll 中執行所有測試。
/coloredConsoleOutput:<true/false>
指定 TAEF 是否應該輸出彩色控制台文字。 預設值為 True。 如果設定為 false,TAEF 會輸出預設控制台色彩的所有文字。
te.exe test1.dll /coloredConsoleOutput:false
/console:<optionName>=<value>
提供設定 TE 使用主控台的選項。 下列是可用的選項:
/console:flushWrites
讓主控台輸出在寫入每一行之後排清 - 當重新導向TE.exe的輸出時很有用。
/console:position=[x,y | current ]
設定相對於主要監視器角落的控制台視窗位置(以像素為單位)。 使用目前的 值來指定應該儲存目前的主控台位置,並在從重新啟動繼續時使用。
/console:size=[ <x,y> | current ]
設定主控台視窗的大小(以字元維度為單位)。 視需要增加螢幕緩衝區大小,以符合視窗的大小。 使用目前的 值來指定應該儲存目前的主控台大小,並在從重新啟動恢復時使用。
/console:topmost
讓主控台在桌面 z 順序中保持執行te.exe最上層的運行時間。
/dpiaware
在標示為 DPI 感知的進程中執行測試,請參閱 高 DPI。 這也可以透過元數據設定 (“DpiAware” )。
/inproc
執行TE.exe程式本身而非 TE 內的所有測試。ProcessHost.exe。
te.exe test1.dll /inproc
注意
TE 一次只支援使用 /inproc 設定時執行一個測試 dll。
/isolationLevel:<Level>
指定執行 TAEF 測試時要使用的最小隔離等級。 如果此值與指定為元數據的 IsolationLevel 衝突,則值會變成最緊密範圍的隔離等級。 如需詳細資訊,請參閱 測試隔離 。
te.exe test1.dll /isolationLevel:Class
/labMode
執行測試並移除潛在的封鎖UI(例如,Windows 錯誤報告損毀測試的對話)。
/list
列出所有 test_binaries 的名稱及其內的類別和方法。 如果指定了選取準則,則只會列出符合準則之準則的名稱。
te.exe test1.dll test2.dll /list
WEX::UnitTests::Test1
WEX::UnitTests::Test1::Example1
WEX::UnitTests::Test1::Example2
WEX::UnitTests::Test1::Example3
WEX::UnitTests::Test2
WEX::UnitTests::Test2::Example1
WEX::UnitTests::Test2::Example2
WEX::UnitTests::Test2::Example3
te.exe test1.dll test2.dll /select:@name='*Example2*' /list
WEX::UnitTests::Test1
WEX::UnitTests::Test1::Example2
WEX: :UnitTests::Test2
WEX::UnitTests::Test2::Example2
/listProperties
列出所有test_binaries的名稱和屬性,以及其中的類別和方法,以及如果有的話,請列出安裝程式和卸載函式名稱。 如果指定了選取準則,則只會列出符合準則之準則的名稱。
te.exe test1.dll test2.dll /listProperties
WEX::UnitTests::Test1
WEX::UnitTests::Test1::Example1
Setup: Test1Setup
Teardown: Test1Teardown
Property[ThreadingModel] = MTA
WEX::UnitTests::Test1::Example2
Setup: Test1Setup
Teardown: Test1Teardown
Property[ThreadingModel] = STA
WEX::UnitTests::Test1::Example3
Setup: Test1Setup
Teardown: Test1Teardown
Property[ThreadingModel] = STA
WEX::UnitTests::Test2
WEX::UnitTests::Test2::Example1
Property[ThreadingModel] = MTA
WEX::UnitTests::Test2::Example2
Property[ThreadingModel] = STA
WEX::UnitTests::Test2::Example3
Property[ThreadingModel] = MTA
te.exe test1.dll test2.dll /select:@name='*Example2*' /listProperties
WEX::UnitTests::Test1
WEX::UnitTests::Test1::Example2
Setup: Test1Setup
Teardown: Test1Teardown
Property[ThreadingModel] = STA
WEX::UnitTests::Test2
WEX::UnitTests::Test2::Example2
Property[ThreadingModel] = STA
/name:<testname>
以測試名稱為基礎的選取是 “/select:@Name='<testname>'” 的簡單替代方案。 <testname> 仍然可以包含通配符 (“*” 和 “?”),但不應包含在單引號內。 如果在命令提示字元中指定 /select 和 /name,則會忽略 /select 查詢的優先順序和 /name。
te.exe test1.dll /name:*TestToLower
解譯: 在test1.dll中執行所有測試,其中方法名稱結尾為 'TestToLower'。 您可以使用選取準則作為 /select:@Name='*TestToLower'來表示相同的 。
te.exe test1.dll /name:*StringTest*
解譯: 在test1.dll中執行所有測試,其中包含其命名空間、類別或方法名稱中的片語 'StringTest'。
/outputFolder:<folderName>
指定要放置所有產生的檔案的資料夾。 預設值是目前的目錄。 您可以使用環境變數,例如:
te.exe test1.dll /outputFolder:%TEMP%\\MyOutput
/p:<ParamName>=<ParamValue>
使用參數名稱=ParamName 和參數值=ParamValue 定義運行時間參數。 這些參數可從測試方法或安裝/清除方法存取。
te.exe test1.dll /p:x=5 /p:myParm=cool
您可以在測試程式代碼中,將 x 擷取為數種支援類型之一。 例如,您可以在這裡看到我們將其擷取為 int 和 WEX::Common::String:
int x = 0;
String xString;
RuntimeParameters::TryGetValue(L"x", x);
RuntimeParameters::TryGetValue(L"x", xString);
如需詳細資訊,請造訪 TAEF。運行時間參數 說明頁面。
/平行
跨多個處理器平行執行測試。 測試必須藉由以 「平行」元數據標示,選擇加入平行執行。
te.exe test1.dll /parallel
如需詳細資訊,請流覽 平行 說明頁面。
/persistPictResults
快取PICT.exe在目前執行中使用 PICT DataSource 進行測試所產生的結果。 後續的測試執行會嘗試利用快取的結果,以針對相同的模型和種子檔案執行PICT.exe。
/pict:<OptionName>=<OptionValue>
提供使用 PICT DataSource 進行測試時控制PICT.exe的選項。 設定其中一個選項目前會覆寫程式代碼中的所有相關聯元數據。 下列是可用的選項:
/Pict:Order=3
透過 PICT.exe 的 /o 命令選項傳遞值,以設定組合的順序。
/Pict:ValueSeparator=;
透過 PICT.exe 的 /d 命令選項傳遞值,以設定值分隔符。
/Pict:AliasSeparator=+
透過 PICT.exe 的 /a 命令選項傳遞值,以設定別名分隔符。
Pict:NegativeValuePrefix=!
透過 PICT.exe 的 /n 命令選項傳遞值,以設定負值前置詞。
/Pict:SeedingFile=test.seed
透過 PICT.exe 的 /e 命令選項傳遞值,以設定植入檔案的路徑。
/Pict:Random=true
開啟或關閉 PICT 結果中的隨機性,並將 PICT 資料源記錄為使用的隨機種子。
/Pict:RandomSeed=33
透過 PICT.exe 的 /r 命令選項傳遞值,以設定隨機種子。 設定這會開啟 Pict:Random,除非 Pict:Random 明確設定為 false。
/Pict:CaseSensitive=true
設定為 true 時,將 /c 命令選項傳遞至 PICT.exe,以開啟區分大小寫。
/Pict:Timeout=00:01:30
設定在終止進程之前等候PICT.exe完成的時間。 值的格式為 [Day.]Hour[:Minute[:Second[.FractionalSeconds]]。]。
/runas:<RunAsType>
在指定的環境中執行測試。 如需詳細的使用方式資訊, 請參閱 RunAs 檔。
te.exe *.dll /runas:System
解譯: 以系統身分執行所有測試。
te.exe *.dll /runas:Elevated
解譯: 以提升許可權的使用者身分執行所有測試。
te.exe *.dll /runas:Restricted
解譯: 以未提高許可權的使用者身分執行所有測試。
te.exe *.dll /runas:LowIL
解譯: 在低完整性程式中執行所有測試。
/runIgnoredTests
執行或清單(如果搭配 /list 或 /listProperties)所有測試,包括測試類別和測試方法,並將 “Ignore” 元數據設定為 “true”。 根據預設,在執行期間和列出期間會略過設定為 「true」 的測試類別和測試方法與 「Ignore」 元數據。
/runon:<MachineName>
在指定的電腦上從遠端執行測試。 TAEF 會驗證、授權及部署必要的二進位檔來執行測試,並將所有信息記錄回原始控制台。 如需詳細的使用方式資訊, 請參閱跨機器測試執行 檔。
te.exe *.dll /runon:TestMachine1
解譯: 在 「TestMachine1」 上遠端執行所有測試。
/select:<query>
從每個測試二進位檔選取測試時要使用的選取準則。 選取準則是由下列一或多個項目所組成:
@[屬性名稱] = [value as string]
@[屬性名稱] >= [value as float or integer]
@[屬性名稱] > [value as float or integer]
@[屬性名稱] <= [value as float or integer]
@[屬性名稱] < [value as float or integer]
- 屬性值必須位於單引號內。
- 您可以使用 「and」、“or” 和 “not” 來指定複合選取準則(不區分大小寫)。
- 屬性值支援通配符透過 “*” 和 “?” 字元。
- 對於 float 和整數值,“*” 字元也可以當做 'exists' 使用,但不能用於部分比對。 例如: /select:“@Priority=*” 有效,但 /select:“@Priority=4*” 不是。
te.exe test1.dll /select:“(@Name='*TestToLower' 或 'C2') 和 @Owner=not(@Priority < 3)”
解譯: 在test1.dll中執行所有測試,其中方法名稱結尾為 'TestToLower' 或擁有者為 'C2';其中 Priority 不小於 3。
te.exe test1.dll test2.dll /select:@Priority=\*
解譯: 在test1.dll中執行所有測試,並在其測試元數據中指定優先順序test2.dll。
te.exe test1.dll /select:@Name='*StringTest*'
解譯: 在test1.dll中執行所有測試,其中包含其命名空間、類別或方法名稱中的片語 'StringTest'。
/sessionTimeout:<value>
設定會話逾時,以執行整個Te.exe。 如果逾時到期,測試會話將會正常中止,而進程結束代碼將表示發生逾時。
注意
逾時值必須以下欄格式指定:
[Day.]Hour[:Minute[:Second[.FractionalSeconds]]]
注意
如果在 WTT 下執行,這個值可以用來確保即使 TAEF 會話逾時,Wtt 記錄檔仍會保持不變。
te.exe test1.dll /sessionTimeout:0:0:0.5
整個測試會話會在 .5 秒之後逾時。
te.exe test1.dll /sessionTimeout:0:0:45
整個測試會話會在 45 秒後逾時。
te.exe test1.dll /sessionTimeout:0:20
整個測試會話會在 20 分鐘後逾時。
te.exe test1.dll /sessionTimeout:5
整個測試會話會在5小時後逾時。
te.exe test1.dll /sessionTimeout:1.2
整個測試會話將在 1 天和 2 小時後逾時。
/terminateOnFirstFailure
第一次發生測試失敗時終止測試回合。 叫用該測試的所有卸除作業,但所有後續的測試都會標示為忽略。 由於已知問題,測試可能會在使用測試模式時繼續執行。
te.exe test1.dll /terminateOnFirstFailure
/testDependencies:<files>
指定使用 跨計算機測試執行時要部署的其他測試相依性。 除非提供完整路徑,否則 TAEF 會搜尋相對於目前目錄,而不是測試目錄。
te.exe *.dll /runon:TestMachine1 /TestDependencies:test*.jpg;file1.doc
解譯: 在 “TestMachine1” 上從遠端執行所有測試,並在執行任何測試之前,先將 'test*.jpg' 和 'file1.doc' 複製到遠端計算機。 每個檔案規格都可以包含通配符(test.txt、test*.dll等),以符合一或多個檔案。
/testTimeout:<value>
設定全域測試逾時,以執行整個Te.exe。 此值會 覆寫任何可能已針對所執行之指定測試所設定的測試逾 時元數據。
注意
逾時值必須以下欄格式指定:
[Day.]Hour[:Minute[:Second[.FractionalSeconds]]]
注意
與 /inproc 搭配使用時,將會忽略。
te.exe test1.dll /testTimeout:0:0:0.5
每個測試和設定/清除方法都會在 .5 秒之後逾時。
te.exe test1.dll /testTimeout:0:0:45
每個測試和設定/清除方法都會在 45 秒後逾時。
te.exe test1.dll /testTimeout:0:20
每個測試和設定/清除方法都會在20 分鐘後逾時。
te.exe test1.dll /testTimeout:5
每個測試和設定/清除方法都會在5小時後逾時。
te.exe test1.dll /testTimeout:1.2
每個測試和設定/清除方法都會在1天和2小時後逾時。
/unicodeOutput:<true/false>
當 TE 傳送至文字檔時,預設會輸出 Unicode。 其中一個例外狀況是,如果您已要求附加至現有的 ANSII 檔案(透過 ''>>)。
若要覆寫此行為,您可以指定 /unicodeOutput:false。 這會強制 TE 一律將 ANSII 輸出至檔案。
te.exe test1.dll /unicodeOutput:false > output.txt
記錄器設定
/appendWttLogging
啟用 WTT 記錄時,會附加至記錄檔,而不是覆寫記錄檔。 必須與 /enableWttLogging 搭配使用。
te.exe test1.dll /enableWttLogging /appendWttLogging
會在測試執行完成時建立或附加至名為 TE.wtl 的記錄檔。
/enableWttLogging
啟用 WTT 記錄;Wttlog.dll在您的路徑中必須可用。
te.exe test1.dll /enableWttLogging
會在測試執行完成時產生名為 TE.wtl 的記錄檔。
/defaultAppDomain
在預設應用程式域中執行受控測試。
te.exe managed.test1.dll /defaultAppDomain
/disableConsoleLogging
停用主控台記錄輸出;必須與 /enableWttLogging 搭配使用。
te.exe test1.dll /disableConsoleLogging /enableWttLogging
/logFile:<name>
指定要作為 wtt 記錄檔的名稱;必須與 /enableWttLogging 搭配使用。
te.exe test1.dll /logFile:myCustomLogFile.xml /enableWttLogging
會在測試執行完成時產生稱為 myCustomeLogFile.xml 的記錄檔。
/logOutput:<mode>
設定記錄器輸出層級。 有效值為:
- 高:啟用一些額外的控制台輸出,例如在每個追蹤旁邊列印時間戳。
- 低:只發出核心事件(開始、結束群組等)和錯誤。 記錄檔包含優先順序較低的詳細數據,會預先提供任何錯誤,以提供失敗的內容。
- LowWithConsoleBuffering:與 Low 相同,但包含記錄檔和控制台輸出中失敗的內容。
- 最低:與 [低] 相同,但控制台輸出只包含錯誤、測試失敗,以及執行摘要。
/version
輸出詳細的版本資訊。
/wttDeviceString:<value>
在初始化 WttLogger 時,完全覆寫 WexLogger 所使用的 WttDeviceString。
te.exe test1.dll /wttDeviceString:$Console
/wttDeviceStringSuffix:<value>
將指定的值附加至 WexLogger 初始化 WttLogger 時所使用的預設 WttDeviceString。 如果 同時指定 wttDeviceString ,則會忽略 。
te.exe test1.dll /wttDeviceStringSuffix:$Console
偵錯設定
/breakOnCreate
在具現化每個測試類別之前,先中斷調試程式。
te.exe test1.dll /breakOnCreate
/breakOnError
如果記錄錯誤或測試失敗,則會中斷調試程式。
te.exe test1.dll /breakOnError
/breakOnInvoke
叫用每個測試方法之前,先中斷調試程式。
te.exe test1.dll /breakOnInvoke
/disableTimeouts
停用執行期間的所有逾時。 偵錯時,當TAEF正在等候正在偵錯的程式部分時,這可能會很有用。
te.exe test1.dll /disableTimeouts
/miniDumpOnError
如果發生測試錯誤或失敗,則接受並記錄迷你傾印。
te.exe test1.dll /miniDumpOnError
/miniDumpOnCrash
如果發生測試損毀,則接受並記錄迷你傾印。
te.exe test1.dll /miniDumpOnCrash
/rebootStateFile
明確啟用重新啟動測試的執行。
te.exe test1.dll /rebootStateFile:myFile.xml
/reportLoadingIssue
當 TAEF 無法載入測試 dll 時,會顯示錯誤描述對話框。 只能用於調查原生測試 dll 載入問題。
te.exe test1.dll /reportLoadingIssue
/screenCaptureOnError
如果發生測試錯誤或失敗,則接受並記錄螢幕擷取。
te.exe test1.dll /screenCaptureOnError
/stackFrameCount:<value>
指定要在取得呼叫堆疊時顯示的堆疊框架數目。 預設值是 50。
te.exe test1.dll /stackFrameCount:100
/stackTraceOnError
如果發生測試錯誤或失敗,則接受並記錄堆疊追蹤。
te.exe test1.dll /stackTraceOnError
測試模式
/testmode:Loop
允許使用兩個變數 迴圈 和 LoopTest 來控制執行。
- 迴圈:控制執行整個執行次數。 預設值 1。
- LoopTest:控制執行個別測試的次數。 預設值為 10。
te.exe test1.dll /testmode:Loop
解譯:test1.dll 10 次執行每個測試(LoopTest 的預設值)。 整個執行會執行一次(循環的預設值)。
te.exe test1.dll test2.dll /testmode:Loop /Loop:3 /LoopTest:1
解譯: 在 test1.dll 中執行每個測試,並test2.dll一次 (由 LoopTest 決定)。 整個執行 (test1.dll 和 test2.dll 中的所有合併測試)都會執行 3 次,如迴圈所決定。
/testmode:Stress
在 「壓力」測試模式中,TAEF 會無限期地執行測試,直到輸入 Ctrl+C 或傳送WM_CLOSE訊息至 TAEF 的隱藏視窗為止。 /testmode:stress 必須與 /inproc 搭配執行。
te.exe test1.dll /testmode:Stress /inproc
如需此模式中支援的詳細資訊和其他參數,請參閱 測試模式。