如何使用dotnet测试运行特定测试?

Nat*_*ini 45 xunit.net .net-core xunit2 .net-core-rc2

我在.NET Core项目中有一个大型测试套件.我可以使用Test Explorer窗口选择要运行的几个测试.

我也可以在命令行上运行整个测试套件dotnet test.有没有办法在命令行上只运行一个(或几个)测试?

and*_*cci 64

使用dotnet版本1.0.0,您必须使用--filter选项:

您可以按DisplayName,FullyQualifiedName和Traits进行过滤.

例如:

dotnet test --filter "FullyQualifiedName=YourNamespace.TestClass1.Test1"
Run Code Online (Sandbox Code Playgroud)

此外,允许这些运算符:=,!=和〜(包含).

更多信息:docs

  • 从版本 15.1 开始,表达式可以是与完全限定名称相匹配的关键字。正如文档所述“dotnet test --filter xyz”与“dotnet test --filter ExcellentQualifiedName~xyz”相同,这非常舒服! (8认同)

Vic*_*aci 12

这个答案已经过时了......

这是特定的xunit: dotnet test -method <test name>

<test name> 是完整的方法名称(名称空间+类+方法名称)

如果您的测试是TheoryAFAIK,则无法指定运行哪种理论.它将运行所有这些.

  • 看起来在这里记录:https://github.com/xunit/dotnet-test-xunit/blob/master/src/dotnet-test-xunit/Program.cs无法在xUnit网站上找到它 (3认同)
  • 不适用于当前版本 (2认同)

Geo*_*ngl 9

由于此问题标记为xUnit,因此dotnet xUnit CLI命令的命令如下:

dotnet xunit -method FullyQualifiedName
Run Code Online (Sandbox Code Playgroud)

  • 仅供参考:“dotnet xunit”现已退役。`dotnet test` 是正确的 CLI 命令(由 `xunit.runner.visualstudio` 包提供支持)。 (7认同)