vstest.console,使用ClassName作为/ testcasefilter的exe

gsg*_*l76 7 vstest.console

我正在寻找使用vstes.console.exe,任何帮助通过ClassName执行单元测试

我尝试过

/TestCaseFilter:"ClassName=ProgressTests"
Run Code Online (Sandbox Code Playgroud)

但抛出错误为

错误:没有测试与筛选器匹配,因为它包含一个或多个无效的属性(ClassName).指定包含有效属性的筛选表达式(TestCategory,Priority,FullyQualifiedName,Name),然后重试.

谢谢

Sal*_*rmy 5

根据https://blogs.msdn.microsoft.com/vikramagrawal/2012/07/23/running-selective-unit-tests-in-vs-2012-rc-using-testcasefilter/ - “ClassName 仅对单元有效Windows 商店应用程序的测试,目前不适用于经典的 MSTest”,尽管那篇博文是几年前的。

您可以只使用/testcasefilter:FullyQualifiedName~NameSpace.Class 中的FullyQualifiedName 过滤器类型


all*_*tej 5

您可以通过指定完全限定的类名称来运行测试:

vstest.console MyBusinessDomain.Tests.dll /testcasefilter:FullyQualifiedName~MyBusinessDomain.Tests.Shopping.Cart
Run Code Online (Sandbox Code Playgroud)

哪里:

MyBusinessDomain.Tests.dll 是测试dll

MyBusinessDomain.Tests.Shopping.Cart 是完全合格的班级名称

或者,您可以按名称空间运行测试类:

vstest.console MyBusinessDomain.Tests.dll /testcasefilter:FullyQualifiedName~MyBusinessDomain.Tests.Shopping
Run Code Online (Sandbox Code Playgroud)

此命令将在MyBusinessDomain.Tests.Shopping名称空间下运行所有​​测试。

注意:仅供参考,vstest.console比mstest更新,并且首选通过命令行运行。可以使用此位置将​​其添加到环境路径(对于VS2015):

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow
Run Code Online (Sandbox Code Playgroud)