ale*_*lex 43 c# tfs unit-testing mstest
我正在使用MSTest,我想同时为测试类中的所有方法设置相同的测试类别,而无需单独为每个方法设置TestCategory属性.如何才能做到这一点?
最方便和最明显的方法是在类上设置TestCategory属性,但它只能应用于方法.
最终目标是在TFS签入的测试运行期间跳过集成测试.
为了能够[TestCategory]在类级别设置属性,请使用NuGet安装“ MSTest V2” TestFramework。
参考:https : //blogs.msdn.microsoft.com/devops/2016/06/17/taking-the-mstest-framework-forward-with-mstest-v2/
我一直在寻找类似的东西,而且我已经找到了一个非常适合我的目的的解决方案.
这并没有解决在每个阶级基础应用TestCategory的问题,但你可以使用/test:命令行参数mstest来指定搜索字符串匹配的任何部分完全限定方法名测试.这意味着您通常可以匹配类,命名空间或您可以到达的任何匹配目标测试的搜索字符串.如果不这样做,您可以/test:多次使用该参数.即:
> mstest /testcontainer:My.dll /test:My.FullyQualified.Namespace
/test:My.FullyQualified.OtherNamespace.OtherClass
Run Code Online (Sandbox Code Playgroud)
编辑:
TestCategory现在可以在MSTest V2中添加类级别的属性,如下面NomadeNumerique的答案中所述.细节
解决此限制的一种方法是将测试类别放在每个测试方法的开头。例如,将您的单元测试命名为
public void UnitTestDoSomething_ExpectThis()
Run Code Online (Sandbox Code Playgroud)
和你的集成测试
public void IntegrationTestDoSomething_ExpectThis()
Run Code Online (Sandbox Code Playgroud)
然后,当您执行 TFS 查询来获取您可以执行的集成测试时
Field[Automated Test Name] with Operator[Contains] and Value[IntegrationTest]
尽管这不是一个完美的解决方案,但它将帮助您区分代码和 TFS 中的测试。或者,您可以查看区域和迭代路径。