共用方式為


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

如需此模式中支援的詳細資訊和其他參數,請參閱 測試模式