我正在寻找使用 vstes.console.exe 通过 ClassName 执行单元测试,任何帮助
我试过了
/TestCaseFilter:"ClassName=ProgressTests"
但这会引发此错误:
错误:没有测试与过滤器匹配,因为它包含一个或多个无效属性(类名)。指定包含有效属性(TestCategory、Priority、FullyQualifiedName、Name)的过滤器表达式,然后重试。
谢谢
我正在寻找使用 vstes.console.exe 通过 ClassName 执行单元测试,任何帮助
我试过了
/TestCaseFilter:"ClassName=ProgressTests"
但这会引发此错误:
错误:没有测试与过滤器匹配,因为它包含一个或多个无效属性(类名)。指定包含有效属性(TestCategory、Priority、FullyQualifiedName、Name)的过滤器表达式,然后重试。
谢谢
您可以通过指定完全限定的类名来运行测试:
vstest.console MyBusinessDomain.Tests.dll /testcasefilter:FullyQualifiedName~MyBusinessDomain.Tests.Shopping.Cart
在哪里:
MyBusinessDomain.Tests.dll
是测试dll
MyBusinessDomain.Tests.Shopping.Cart
是完全限定的类名
或者您可以通过命名空间运行测试类:
vstest.console MyBusinessDomain.Tests.dll /testcasefilter:FullyQualifiedName~MyBusinessDomain.Tests.Shopping
该命令将运行MyBusinessDomain.Tests.Shopping
命名空间下的所有测试。
注意:仅供参考,vstest.console 比 mstest 更新,更适合通过命令行运行。可以使用此位置将其添加到环境路径(对于 VS2015):
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow
根据https://blogs.msdn.microsoft.com/vikramagrawal/2012/07/23/running-selective-unit-tests-in-vs-2012-rc-using-testcasefilter/ -“类名仅对单元有效Windows 商店应用程序的测试,目前不适用于经典 MSTest”,尽管该博客文章是多年前的。
您可以只使用 /testcasefilter:FullyQualifiedName~NameSpace.Class 中的 FullyQualifiedName 过滤器类型
tilda 的~
意思是“包含”,所以 ifFoobar
是您的班级名称:
vstest.console bin\Debug\MyTests.dll /TestCaseFilter:FullyQualifiedName~Foobar