vstest.console.exe ClassName 为 /testcasefilter

vstest.console.exe with ClassName as /testcasefilter

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

我试过了

/TestCaseFilter:"ClassName=ProgressTests"

但这会引发此错误:

Error: No tests matched the filter because it contains one or more properties that are not valid (ClassName). Specify filter expression containing valid properties (TestCategory, Priority, FullyQualifiedName, Name) and try again.

谢谢

根据 https://blogs.msdn.microsoft.com/vikramagrawal/2012/07/23/running-selective-unit-tests-in-vs-2012-rc-using-testcasefilter/ - "ClassName is only valid for unit tests for Windows store apps, currently not available for classic MSTest" 虽然该博客 post 是几年前的事了。

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

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

vstest.console MyBusinessDomain.Tests.dll /testcasefilter:FullyQualifiedName~MyBusinessDomain.Tests.Shopping.Cart

其中:

MyBusinessDomain.Tests.dll是测试dll

MyBusinessDomain.Tests.Shopping.Cart 是完全限定的 class 名称

或者您可以 运行 测试 classes by namespace:

vstest.console MyBusinessDomain.Tests.dll /testcasefilter:FullyQualifiedName~MyBusinessDomain.Tests.Shopping

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

注意:仅供参考,vstest.console 比 mstest 更新,并且是通过命令行 运行ning 的首选。它可以添加到这个位置的环境路径(对于 VS2015):

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow

波浪线 ~ 表示 "contains",因此如果 Foobar 是您的 class 的名称:

vstest.console bin\Debug\MyTests.dll /TestCaseFilter:FullyQualifiedName~Foobar

https://msdn.microsoft.com/en-us/library/jj155800.aspx