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

时间:2016-08-23 08:08:02

标签: vstest.console

我正在寻找使用vstes.console.exe,任何帮助

通过ClassName执行单元测试

我试过

/TestCaseFilter:"ClassName=ProgressTests"

但是抛出错误

  

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

谢谢

3 个答案:

答案 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

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