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

94

我有一个.NET Core项目中的大型测试套件。我可以使用测试资源管理器窗口选择运行一些测试。

我也可以使用 dotnet test 命令在命令行上运行整个测试套件。是否有办法在命令行上仅运行一个(或多个)测试?

2个回答

121

在dotnet版本1.0.0中,您需要使用--filter选项:

您可以按DisplayName、FullyQualifiedName和Traits进行过滤。

例如:

dotnet test --filter "FullyQualifiedName=YourNamespace.TestClass1.Test1"

此外,还允许使用以下运算符:=、!= 和 ~(包含)。

更多信息请参见:文档


我尝试了一下,这个解决方案也适用于1.1版本和一个[Theory]装饰的方法。 -method-class 开关在1.1中不再可用,您将收到错误消息:MSBUILD:error MSB1001:未知开关。开关:-method - Teknikaali
1
是的,我刚刚确认了这一点。-method不再起作用,但是--filter可以。感谢@andrecarlucci! - Nate Barbettini
7
自版本15.1起,表达式可以是一个关键字,将与完全限定名称匹配。正如文档所述:“dotnet test --filter xyzdotnet test --filter FullyQualifiedName~xyz相同”,这更加舒适! - VincentTellier

9

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

dotnet xunit -method FullyQualifiedName

5
FYI: dotnet xunit已经被淘汰。 现在正确的CLI命令是dotnet test(由xunit.runner.visualstudio包提供支持)。 - Nate Barbettini

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接