dotnet testdotnet test

本文内容

本文适用于:✓ .NET Core 1.x SDK ✓ .NET Core 2.x SDK

nameName

dotnet test - 用于执行单元测试的 .NET 测试驱动程序。

摘要Synopsis

  1. dotnet test [<PROJECT>] [-a|--test-adapter-path] [--blame] [-c|--configuration] [--collect] [-d|--diag] [-f|--framework] [--filter]
  2. [-l|--logger] [--no-build] [--no-restore] [-o|--output] [-r|--results-directory] [-s|--settings] [-t|--list-tests]
  3. [-v|--verbosity] [-- <RunSettings arguments>]
  4. dotnet test [-h|--help]
  1. dotnet test [<PROJECT>] [-a|--test-adapter-path] [-c|--configuration] [--collect] [-d|--diag] [-f|--framework] [--filter]
  2. [-l|--logger] [--no-build] [--no-restore] [-o|--output] [-r|--results-directory] [-s|--settings] [-t|--list-tests] [-v|--verbosity]
  3. dotnet test [-h|--help]
  1. 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]
  2. dotnet test [-h|--help]

说明Description

dotnet test 命令用于执行给定项目中的单元测试。dotnet test 命令启动为项目指定的测试运行程序控制台应用程序。测试运行程序执行为单元测试框架(例如 MSTest、NUnit 或 xUnit)定义的测试,并报告每个测试是否成功。如果所有测试均成功,测试运行程序将返回 0 作为退出代码;否则将返回 1。测试运行程序和单元测试库打包为 NuGet 包并还原为该项目的普通依赖项。

测试项目使用普通 <PackageReference> 元素指定测试运行程序,如下方示例项目文件所示:

  1. <Project Sdk="Microsoft.NET.Sdk">
  2. <PropertyGroup>
  3. <TargetFramework>netcoreapp2.2</TargetFramework>
  4. </PropertyGroup>
  5. <ItemGroup>
  6. <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.3.0" />
  7. <PackageReference Include="xunit" Version="2.4.1" />
  8. <PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" />
  9. </ItemGroup>
  10. </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 xyzdotnet test —filter FullyQualifiedName~xyz 相同)。

表达式可与条件运算符结合使用:

运算符函数
|
&AND

使用条件运算符时,可以用括号将表达式括起来(例如,(Name~TestMethod1) | (Name~TestMethod2))。

若要获取使用选择性单元测试筛选的其他信息和示例,请参阅运行选择性单元测试

请参阅See also