dotnet testdotnet test
本文内容
本文适用于:✓ .NET Core 1.x SDK ✓ .NET Core 2.x SDK
nameName
dotnet test
- 用于执行单元测试的 .NET 测试驱动程序。
摘要Synopsis
dotnet test [<PROJECT>] [-a|--test-adapter-path] [--blame] [-c|--configuration] [--collect] [-d|--diag] [-f|--framework] [--filter]
[-l|--logger] [--no-build] [--no-restore] [-o|--output] [-r|--results-directory] [-s|--settings] [-t|--list-tests]
[-v|--verbosity] [-- <RunSettings arguments>]
dotnet test [-h|--help]
dotnet test [<PROJECT>] [-a|--test-adapter-path] [-c|--configuration] [--collect] [-d|--diag] [-f|--framework] [--filter]
[-l|--logger] [--no-build] [--no-restore] [-o|--output] [-r|--results-directory] [-s|--settings] [-t|--list-tests] [-v|--verbosity]
dotnet test [-h|--help]
dotnet test [<PROJECT>] [-a|--test-adapter-path] [-c|--configuration] [-d|--diag] [-f|--framework] [--filter] [-l|--logger] [--no-build] [-o|--output] [-s|--settings] [-t|--list-tests] [-v|--verbosity]
dotnet test [-h|--help]
说明Description
dotnet test
命令用于执行给定项目中的单元测试。dotnet test
命令启动为项目指定的测试运行程序控制台应用程序。测试运行程序执行为单元测试框架(例如 MSTest、NUnit 或 xUnit)定义的测试,并报告每个测试是否成功。如果所有测试均成功,测试运行程序将返回 0 作为退出代码;否则将返回 1。测试运行程序和单元测试库打包为 NuGet 包并还原为该项目的普通依赖项。
测试项目使用普通 <PackageReference>
元素指定测试运行程序,如下方示例项目文件所示:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.3.0" />
<PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" />
</ItemGroup>
</Project>
自变量Arguments
PROJECT
指向测试项目的路径。如未指定,则默认为当前目录。
选项Options
-a|—test-adapter-path <PATH_TO_ADAPTER>
在测试运行中使用来自指定路径的自定义测试适配器。
—blame
在意见模式中运行测试。此选项有助于隔离导致测试主机出现故障的有问题的测试。它会在当前目录中创建一个输出文件 (Sequence.xml),其中捕获了故障前的测试执行顺序 。
-c|—configuration {Debug|Release}
定义生成配置。默认值为 Debug
,但项目配置可以替代此默认 SDK 设置。
—collect <DATA_COLLECTOR_FRIENDLY_NAME>
为测试运行启用数据收集器。有关详细信息,请参阅监视和分析测试运行。
-d|—diag <PATH_TO_DIAGNOSTICS_FILE>
启用测试平台的诊断模式,并将诊断消息写入指定文件。
-f|—framework <FRAMEWORK>
查找特定框架的测试二进制文件。
—filter <EXPRESSION>
使用给定表达式筛选掉当前项目中的测试。有关详细信息,请参阅筛选选项详细信息部分。若要获取使用选择性单元测试筛选的其他信息和示例,请参阅运行选择性单元测试。
-h|—help
打印出有关命令的简短帮助。
-l|—logger <LoggerUri/FriendlyName>
指定测试结果记录器。
—no-build
不在运行测试项目之前生成它。还隐式设置 —no-restore
标记。
—no-restore
运行此命令时不执行隐式还原。
-o|—output <OUTPUT_DIRECTORY>
查找要运行的二进制文件的目录。
-r|—results-directory <PATH>
用于放置测试结果的目录。如果指定的目录不存在,则会创建该目录。
-s|—settings <SETTINGS_FILE>
.runsettings
文件用于运行测试。使用 .runsettings
文件配置单元测试。
-t|—list-tests
列出当前项目中发现的所有测试。
-v|—verbosity <LEVEL>
设置命令的详细级别。允许使用的值为 q[uiet]
、m[inimal]
、n[ormal]
、d[etailed]
和 diag[nostic]
。
RunSettings arguments
作为测试的 RunSettings 配置传递的参数。参数在“— ”(注意 — 后的空格)后被指定为 [name]=[value]
对。空格用于分隔多个 [name]=[value]
对。
示例:dotnet test — MSTest.DeploymentEnabled=false MSTest.MapInconclusiveToFailed=True
有关 RunSettings 的详细信息,请参阅 vstest.console.exe:传递 RunSettings 参数。
-a|—test-adapter-path <PATH_TO_ADAPTER>
在测试运行中使用来自指定路径的自定义测试适配器。
-c|—configuration {Debug|Release}
定义生成配置。默认值为 Debug
,但项目配置可以替代此默认 SDK 设置。
—collect <DATA_COLLECTOR_FRIENDLY_NAME>
为测试运行启用数据收集器。有关详细信息,请参阅监视和分析测试运行。
-d|—diag <PATH_TO_DIAGNOSTICS_FILE>
启用测试平台的诊断模式,并将诊断消息写入指定文件。
-f|—framework <FRAMEWORK>
查找特定框架的测试二进制文件。
—filter <EXPRESSION>
使用给定表达式筛选掉当前项目中的测试。有关详细信息,请参阅筛选选项详细信息部分。若要获取使用选择性单元测试筛选的其他信息和示例,请参阅运行选择性单元测试。
-h|—help
打印出有关命令的简短帮助。
-l|—logger <LoggerUri/FriendlyName>
指定测试结果记录器。
—no-build
不在运行测试项目之前生成它。还隐式设置 —no-restore
标记。
—no-restore
运行此命令时不执行隐式还原。
-o|—output <OUTPUT_DIRECTORY>
查找要运行的二进制文件的目录。
-r|—results-directory <PATH>
用于放置测试结果的目录。如果指定的目录不存在,则会创建该目录。
-s|—settings <SETTINGS_FILE>
.runsettings
文件用于运行测试。使用 .runsettings
文件配置单元测试。
-t|—list-tests
列出当前项目中发现的所有测试。
-v|—verbosity <LEVEL>
设置命令的详细级别。允许使用的值为 q[uiet]
、m[inimal]
、n[ormal]
、d[etailed]
和 diag[nostic]
。
-a|—test-adapter-path <PATH_TO_ADAPTER>
在测试运行中使用来自指定路径的自定义测试适配器。
-c|—configuration {Debug|Release}
定义生成配置。默认值为 Debug
,但项目配置可以替代此默认 SDK 设置。
-d|—diag <PATH_TO_DIAGNOSTICS_FILE>
启用测试平台的诊断模式,并将诊断消息写入指定文件。
-f|—framework <FRAMEWORK>
查找特定框架的测试二进制文件。
—filter <EXPRESSION>
使用给定表达式筛选掉当前项目中的测试。有关详细信息,请参阅筛选选项详细信息部分。若要获取使用选择性单元测试筛选的其他信息和示例,请参阅运行选择性单元测试。
-h|—help
打印出有关命令的简短帮助。
-l|—logger <LoggerUri/FriendlyName>
指定测试结果记录器。
—no-build
不在运行测试项目之前生成它。
-o|—output <OUTPUT_DIRECTORY>
查找要运行的二进制文件的目录。
-s|—settings <SETTINGS_FILE>
.runsettings
文件用于运行测试。使用 .runsettings
文件配置单元测试。
-t|—list-tests
列出当前项目中发现的所有测试。
-v|—verbosity <LEVEL>
设置命令的详细级别。允许使用的值为 q[uiet]
、m[inimal]
、n[ormal]
、d[etailed]
和 diag[nostic]
。
示例Examples
运行当前目录所含项目中的测试:
dotnet test
运行 test1
项目中的测试:
dotnet test ~/projects/test1/test1.csproj
在当前目录运行项目中的测试,并以 trx 格式生成测试结果文件:
dotnet test —logger trx
筛选选项详细信息Filter option details
—filter <EXPRESSION>
<Expression>
格式为 <property><operator><value>[|&<Expression>]
。
<property>
是 Test Case
的特性。下面介绍了常用单元测试框架支持的属性:
测试框架 | 支持的属性 |
---|---|
MSTest | - FullyQualifiedName- name- ClassName- Priority- TestCategory |
xUnit | - FullyQualifiedName- DisplayName- Traits |
<operator>
说明了属性和值之间的关系:
运算符 | 函数 |
---|---|
= | 完全匹配 |
!= | 非完全匹配 |
~ | 包含 |
<value>
是字符串。所有查找都不区分大小写。
不含 <operator>
的表达式自动被视为 FullyQualifiedName
属性上的 contains
(例如,dotnet test —filter xyz
与 dotnet test —filter FullyQualifiedName~xyz
相同)。
表达式可与条件运算符结合使用:
运算符 | 函数 |
---|---|
| | 或 |
& | AND |
使用条件运算符时,可以用括号将表达式括起来(例如,(Name~TestMethod1) | (Name~TestMethod2)
)。
若要获取使用选择性单元测试筛选的其他信息和示例,请参阅运行选择性单元测试。