本文适用于:✔️ .NET 6 SDK 及更高版本
重要
命令 dotnet vstest 被取代 dotnet test,该命令现在可用于运行程序集。 请参阅 dotnet 测试。
Name
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,Framework45FrameworkCore10和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并行运行测试。 默认情况下,计算机上的所有可用核心都可供使用。 通过在
MaxCpuCount文件中的RunConfiguration节点下设置属性来指定显式核心数。--Platform:<PLATFORM_TYPE>用于测试执行的目标平台体系结构。 有效值为
x86、、x64、ARM、、S390xARM64Ppc64le、RiscV64和LoongArch64。--ResultsDirectory:<PATH>如果不存在,将在指定路径中创建测试结果目录。
--Settings:<SETTINGS_FILE>运行测试时要使用的设置。
--TestAdapterPath:<PATH>在测试运行中使用给定路径(如果有)中的自定义测试适配器。
--TestCaseFilter:<EXPRESSION>运行与给定表达式匹配的测试。
<EXPRESSION>是格式<property>Operator<value>[|&<EXPRESSION>],其中运算符是其中=之一,!=或~。 运算符~具有“contains”语义,适用于字符串属性,例如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日期选项详细信息和内部开关,以及指向相关 Runsettings、筛选和诊断文档的链接。 -
VSTest 环境变量 (microsoft/vstest) - VSTest 和测试主机识别的环境变量,例如
VSTEST_DUMP_FORCEPROCDUMP,启动时vstest.console.NET SDK 设置的VSTEST_DOTNET_ROOT_*变量。