我正在寻找使用vstes.console.exe,任何帮助通过ClassName执行单元测试
我尝试过
/TestCaseFilter:"ClassName=ProgressTests"
Run Code Online (Sandbox Code Playgroud)
但抛出错误为
错误:没有测试与筛选器匹配,因为它包含一个或多个无效的属性(ClassName).指定包含有效属性的筛选表达式(TestCategory,Priority,FullyQualifiedName,Name),然后重试.
谢谢
根据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 过滤器类型
您可以通过指定完全限定的类名称来运行测试:
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)