此文章適用於:✔️ .NET 6 SDK 與更新版本
這很重要
此 dotnet vstest 命令會由 dotnet test取代,現在可用來執行元件。 請參閱 dotnet test。
名稱
dotnet vstest - 從指定的元件執行測試。
概要
dotnet vstest [<TEST_FILE_NAMES>] [--Blame] [--Collect:<DATA_COLLECTOR_NAME>]
[--Diag:<PATH_TO_LOG_FILE>] [-e|--Environment:<NAME="VALUE">]
[--Framework:<FRAMEWORK>] [--InIsolation] [-lt|--ListTests:<FILE_NAME>]
[--logger:<LOGGER_URI/FRIENDLY_NAME>] [--Parallel]
[--Platform:<PLATFORM_TYPE>] [--ResultsDirectory:<PATH>]
[--Settings:<SETTINGS_FILE>] [--TestAdapterPath:<PATH>]
[--TestCaseFilter:<EXPRESSION>] [--Tests:<TEST_NAMES>] [[--] <args>...]
dotnet vstest -?|--Help
Description
此 dotnet vstest 命令會執行 VSTest.Console 命令列應用程式來執行自動化單元測試。 本文中的選項已轉發至 vstest.console。 欲了解完整的命令列選項清單,請參見 vstest.console.exe 命令列選項。
Arguments
TEST_FILE_NAMES從指定的元件執行測試。 用空格分隔多個測試組件名稱。 支援萬用字元。
選項
--Blame在歸責模式下執行測試。 此選項有助於隔離導致測試主機當機的問題測試。 它會在目前目錄中建立輸出檔案作為 Sequence.xml ,以擷取當機前測試執行順序。
--Collect:<DATA_COLLECTOR_NAME>啟用資料收集器以進行測試執行。 例如,透過
--Collect:"Code Coverage"內建的 Visual Studio 收集器收集程式碼覆蓋率,並--Collect:"XPlat Code Coverage"使用跨平台的 Coverlet 收集器。 如需詳細資訊,請參閱監視及分析測試回合。--Diag:<PATH_TO_LOG_FILE>啟用測試平台的詳細記錄。 日誌會寫入提供的檔案。
-e|--Environment:<NAME="VALUE">設定測試主機程序的環境變數值。 如果變數不存在,它會建立;如果存在,則覆蓋它。 使用此選項會強制測試在獨立程序中執行。 多次指定設定多個變數的選項。
--Framework:<FRAMEWORK>用於測試執行的目標 .NET Framework 版本。 有效值的範例是
.NETFramework,Version=v7.0。 其他支援的值包括Framework40、Framework45、FrameworkCore10和FrameworkUap10。--InIsolation在隔離進程中執行測試。 這使得 vstest.console.exe 進程不太可能因測試中的錯誤而停止,但測試執行速度可能會變慢。
-lt|--ListTests:<FILE_NAME>列出從指定測試容器探索到的所有測試。
--logger:<LOGGER_URI/FRIENDLY_NAME>指定測試結果的記錄器。
若要將測試結果發佈至 Team Foundation Server,請使用
TfsPublisher記錄器提供者:/logger:TfsPublisher; Collection=<team project collection url>; BuildName=<build name>; TeamProject=<team project name> [;Platform=<Defaults to "Any CPU">] [;Flavor=<Defaults to "Debug">] [;RunTitle=<title>]若要將結果記錄到 Visual Studio 測試結果檔案 (TRX) ,請使用
trx記錄器提供者。 此開關在測試結果目錄中建立一個檔案,其中包含給定的日誌檔名。 如果未提供,則LogFileName會建立唯一的檔名來保存測試結果。/logger:trx [;LogFileName=<Defaults to unique file name>]
--Parallel平行執行測試。 依預設,機器上所有可用的核心都可供使用。 透過設定
MaxCpuCountRunConfiguration檔案中節點下的屬性來指定明確的核心數目。--Platform:<PLATFORM_TYPE>用於測試執行的目標平台架構。 有效值為
x86、x64、Ppc64leLoongArch64ARMARM64S390xRiscV64和 。--ResultsDirectory:<PATH>如果不存在,則會在指定的路徑中建立測試結果目錄。
--Settings:<SETTINGS_FILE>執行測試時要使用的設定。
--TestAdapterPath:<PATH>在測試回合中,使用指定路徑 (如果有的話) 的自訂測試配接器。
--TestCaseFilter:<EXPRESSION>執行符合指定運算式的測試。
<EXPRESSION>的格式<property>Operator<value>[|&<EXPRESSION>]為 ,其中 Operator 是 、=或!=之一~。 運算子~具有「包含」語意,適用於字串屬性,例如DisplayName。 括號()用於將子表達式分組。 如需詳細資訊,請參閱 TestCase 篩選器。--Tests:<TEST_NAMES>使用符合所提供值的名稱執行測試。 以逗號分隔多個值。
-?|--Help列印命令的簡短說明。
@<file>讀取回應檔案以取得更多選項。
args指定要傳遞至配接器的額外引數。 引數指定為格式為
<n>=<v>的名稱值對,其中<n>是引數名稱,<v>是引數值。 使用空格來分隔多個引數。
範例
在 mytestproject.dll中運行測試:
dotnet vstest mytestproject.dll
在 mytestproject.dll中執行測試,匯出至具有自訂名稱的自訂資料夾:
dotnet vstest mytestproject.dll --logger:"trx;LogFileName=custom_file_name.trx" --ResultsDirectory:custom/file/path
在 mytestproject.dll 和 myothertestproject.exe中運行測試:
dotnet vstest mytestproject.dll myothertestproject.exe
執行 TestMethod1 測試:
dotnet vstest /Tests:TestMethod1
執行 TestMethod1 和 TestMethod2 測試:
dotnet vstest /Tests:TestMethod1,TestMethod2
另請參閱
-
VSTest.Console.exe 命令列選項(Microsoft Learn)——官方的 Microsoft Learn 參考工具
VSTest.Console.exe,包含不會暴露的選項dotnet vstest。 從這裡開始,提供穩定且精心策劃的文件。 -
VSTest.Console.exe 命令列選項(Microsoft/VStest 倉庫) — 倉庫中的
microsoft/vstest原始碼衍生參考。 使用它以獲取最 up-to日期的選項細節和內部開關,以及相關的執行設定、篩選和診斷文件連結。 -
VSTest 環境變數(microsoft/vstest)-VSTest 與測試主機都能辨識的環境變數,例如
VSTEST_DUMP_FORCEPROCDUMPVSTEST_DOTNET_ROOT_*以及 .NET SDK 啟動vstest.console時設定的變數。