10

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

我试过了

/TestCaseFilter:"ClassName=ProgressTests"

但这会引发此错误:

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

谢谢

4

3 回答 3

12

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

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
于 2017-02-03T15:13:40.507 回答
5

根据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 过滤器类型

于 2016-09-20T15:20:22.400 回答
2

tilda 的~意思是“包含”,所以 ifFoobar是您的班级名称:

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

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

于 2018-01-18T02:46:41.410 回答