本文提供一個 MTP 命令列選項的中央入口。
Important
平台選項可直接從 MTP 本身取得。 擴充選項僅在每個目標測試應用程式註冊提供擴充套件時才可用。 直接新增套件,或使用包含套件的測試 SDK 設定或設定檔。 如果測試應用程式沒有註冊該擴展,執行會失敗,因為該選項未被識別,導致執行代碼為 5。
平台選項
@指定回應檔的名稱。 回應檔案名稱必須緊接
@字元後面,且字元與回應檔案名稱之間@不得留白。回應檔中的選項將被解讀為彷彿它們在命令列的那個位置。 你不能用反斜線字
\元來串接行數。 使用回應檔案可以幫助處理可能超出終端機限制的長命令行。 您可以將回應檔與內嵌命令行自變數結合。 例如:./TestExecutable.exe @"filter.rsp" --timeout 10s其中 filter.rsp 可以有下列內容:
--filter "A very long filter"或者,單一 rsp 檔案可用來指定逾時和篩選,如下所示:
./TestExecutable.exe @"arguments.rsp"--filter "A very long filter" --timeout 10s備註
使用
dotnet test時,SDK 命令列解析器採用逐行標記法,回應檔案中的每一行視為單一標記。 此時,每個參數必須在獨立的行上:--filter A very long filter --timeout 10s--config-file指定 testconfig.json 檔案。
--debug啟動時會暫停測試執行,這樣你就可以把除錯器附加到測試程序上。 相當於將
TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER設定為1。 瀏覽器平台不支援。備註
此選項自 1.9.0 版本起在 MTP 中提供。 它取代了先前
--debug-wait-attach的選項(由 MTP 1.6.0 引入);舊名稱已被移除,且不得再使用。--diagnostic啟用診斷記錄功能。 預設的日誌層級是
Trace。 對於每個測試來源,MTP 寫成<asm>_<tfm>_<arch>_<timestamp>.diag。 若時間戳記發生衝突,MTP 會加入程序與計數器的後綴,而不會覆寫現有檔案。--diagnostic-synchronous-write強制內建檔案記錄器同步寫入記錄。 適用於如果程序崩潰時,您不想遺失任何日誌條目的情況。 這會拖慢測試執行速度。
備註
從 2.0.0 版本起,支援 MTP。 它取代了先前
--diagnostic-filelogger-synchronouswrite在 MTP 2.0.0 中移除的選項。--diagnostic-output-directory診斷記錄的輸出目錄,如果未指定的話,檔案會產生在預設的 TestResults 目錄中。
--diagnostic-file-prefix記錄檔名稱的前置詞。 預設值為
<asm>_<tfm>_<arch>。備註
從 2.0.0 版本起,支援 MTP。 它取代了先前
--diagnostic-output-fileprefix在 MTP 2.0.0 中移除的選項。--diagnostic-verbosity當使用
--diagnostic開關時,定義訊息顯示的詳盡程度。 可用的值為Trace、Debug、Information、Warning、Error或Critical。--enable-dynamic-extensions啟用由測試應用程式旁的
*.testingplatformextensions.json清單檔案宣告的載入擴充功能。 動態擴充功能預設是被關閉的。 關於安全需求與清單架構,請參見 動態載入擴充功能。備註
此選項自 MTP 2.4.0 版本起提供。
--exit-on-process-exit如果依賴進程結束,則離開測試進程。 必須提供 PID。
--filter-uid會根據測試節點的 UID 來篩選要執行的測試。 接受一個或多個 UID。
備註
此選項自 MTP 版本 1.8.0 起提供。 從 MTP 2.3.0 開始,您無法將
--filter-uid與--treenode-filter一起使用;若同時指定兩者,命令列驗證會失敗,並傳回InvalidCommandLine結束代碼。--help輸出有關如何使用命令的說明。
--ignore-exit-code允許忽略某些非零結束代碼,並改為以
0傳回 。 如需更多資訊,請參閱 忽略特定退出代碼。--info顯示關於 .NET 測試應用程式的進階資訊,例如:
- 平臺。
- 環境。
- 每個已註冊的命令行提供者,例如其
name、version、description和options。 - 每個已註冊的工具,例如其
command、name、version、description等和所有指令行提供者。
這項功能可用來瞭解那些將註冊相同命令列選項的擴充功能,或多個擴充功能版本(或平台)之間的可用選項變化。
--list-tests列出可用測試但未執行。 可選擇性地取一個參數來控制輸出格式:
text(預設、人類可讀)或json。備註
json輸出格式自 2.3.0 版本起可在 MTP 中取得。--maximum-failed-tests指定達到的測試失敗數目上限,當達到時,將會停止測試回合。 若要支援此切換,架構作者需要實作
IGracefulStopTestExecutionCapability功能。 到達該測試失敗數量時的退出代碼為13。 欲了解更多資訊,請參閱 MTP出口代碼。備註
此功能自 MTP 1.5 版本起可使用。
--minimum-expected-tests規定必須執行的最少測試次數。 當執行的測試次數減少(包括零)時,會以程式碼
9結束。 明確最小值取代--zero-tests-policy了。--no-banner停用啟動橫幅、版權訊息及遙測橫幅。 同樣的效果也可透過
TESTINGPLATFORM_NOBANNERorDOTNET_NOLOGO環境變數達成。--results-directory測試結果將要放置的目錄。 如果指定的目錄不存在,則會建立它。 預設是在包含測試應用程式的目錄中的
TestResults。--server以伺服器模式啟動測試應用程式 JSON-RPC 用於編輯器、IDE 或工具整合。 省略價值或使用
jsonrpc。 關於支援的純原始碼用戶端,請參見 MTP 伺服器模式。Important
dotnettestcli值及其傳輸參數是 .NET SDK 整合的內部參數。 不要手動通過。--show-slowest-tests顯示終端摘要中要求的最慢測試數量。 當一個測試包含多個測試模組時,MTP 會報告每個模組最慢的測試。
備註
此選項自 MTP 2.4.0 版本起提供。
--timeout全域測試執行逾時。 採用一個自變數做為字串,格式
<value>[h|m|s]其中<value>為 float。--treenode-filter使用樹狀篩選運算式來篩選要執行的測試。 樹狀篩選器在進階情境中可提供比
--filter更豐富的比對方式。備註
從 MTP 2.3.0 開始,您無法將
--treenode-filter與--filter-uid一起使用;若同時指定兩者,命令列驗證會失敗,並傳回InvalidCommandLine結束代碼。--zero-tests-policy控制當某次執行因所有測試都被略過而未執行任何測試時,是否將其視為失敗。 有效的值為
allow-skipped(預設值)和strict。 使用allow-skipped時,全部略過的執行會成功。 使用strict時,會失敗,並顯示結束代碼8。--minimum-expected-tests明確值會取代此政策,當未達到最低值時會使用退出碼9。備註
此選項自 MTP 2.3.0 版本起提供。
各情境的延伸選項
請參考下表查詢每個擴充功能的套件與選項。 測試 SDK 設定檔可以提供套件,而非直接的套件參考。
| Scenario | 所需組件 | 功能文件 |
|---|---|---|
| 收集程式代碼涵蓋範圍 |
Microsoft.Testing.Extensions.CodeCoverage 或 coverlet.MTP |
程式碼涵蓋範圍 |
| 收集崩潰或懸掛的備份 |
Microsoft.Testing.Extensions.CrashDump 或 Microsoft.Testing.Extensions.HangDump |
崩潰與懸浮傾倒 |
| 產生測試報告 | 所選格式的擴充套件,例如 Microsoft.Testing.Extensions.TrxReport |
測試報告 |
| 自訂終端輸出 | MTP 核心(無額外套件) | 終端輸出 |
| 重試未通過測試 | Microsoft.Testing.Extensions.Retry |
重試 |
在你的測驗應用程式中發現選項
使用 dotnet test --help 執行測試執行檔,或以 MTP 模式執行 --help,即可列出目前擴充功能集可用的選項。
若要對註冊醫療提供者及選項進行進階診斷,請使用 --info。