我正在寻找使用vstes.console.exe,任何帮助
通过ClassName执行单元测试我试过
/TestCaseFilter:"ClassName=ProgressTests"
但是抛出错误
错误:没有测试与过滤器匹配,因为它包含一个或多个 无效的属性(ClassName)。指定过滤表达式 包含有效属性(TestCategory,Priority, FullyQualifiedName,Name),然后重试。
谢谢
答案 0 :(得分:5)
您可以通过指定完全限定的类名来运行测试:
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
命名空间下的所有测试。
注意:FYI,vstest.console比mstest更新,并且更适合通过命令行运行。它可以添加到具有此位置的环境路径中(对于VS2015):
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow
答案 1 :(得分:2)
根据https://blogs.msdn.microsoft.com/vikramagrawal/2012/07/23/running-selective-unit-tests-in-vs-2012-rc-using-testcasefilter/ - “ClassName仅对Windows商店应用程序的单元测试有效,目前不适用于经典MSTest”,尽管该博客文章几年前已经发布了。
您可以使用FullyQualifiedName过滤器类型,如/testcasefilter :FullyQualifiedName〜NameSpace.Class
答案 2 :(得分:0)
tilda ~
表示“包含”,因此如果Foobar
是您班级的名称:
vstest.console bin\Debug\MyTests.dll /TestCaseFilter:FullyQualifiedName~Foobar