Microsoft.Testing.Platform (MTP) CLI 選項參考

本文提供一個 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 開關時,定義訊息顯示的詳盡程度。 可用的值為 TraceDebugInformationWarningErrorCritical

  • --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 測試應用程式的進階資訊,例如:

    • 平臺。
    • 環境。
    • 每個已註冊的命令行提供者,例如其 nameversiondescriptionoptions
    • 每個已註冊的工具,例如其 commandnameversiondescription等和所有指令行提供者。

    這項功能可用來瞭解那些將註冊相同命令列選項的擴充功能,或多個擴充功能版本(或平台)之間的可用選項變化。

  • --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_NOBANNER or DOTNET_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.CodeCoveragecoverlet.MTP 程式碼涵蓋範圍
收集崩潰或懸掛的備份 Microsoft.Testing.Extensions.CrashDumpMicrosoft.Testing.Extensions.HangDump 崩潰與懸浮傾倒
產生測試報告 所選格式的擴充套件,例如 Microsoft.Testing.Extensions.TrxReport 測試報告
自訂終端輸出 MTP 核心(無額外套件) 終端輸出
重試未通過測試 Microsoft.Testing.Extensions.Retry 重試

在你的測驗應用程式中發現選項

使用 dotnet test --help 執行測試執行檔,或以 MTP 模式執行 --help,即可列出目前擴充功能集可用的選項。

若要對註冊醫療提供者及選項進行進階診斷,請使用 --info

另請參閱