如何使用VS2012,TFS Build和NUnit排除测试运行

时间:2013-05-27 06:17:40

标签: visual-studio-2012 tfs nunit tfsbuild tfs2012

我有以下设置 Visual Studio 2012 Update 2 NUnit测试适配器Beta 4 NUnit 2.62

我使用NUnit中的以下任一属性或MSTest中的TestCategory标记测试:

[Category("WebServer")]
public void FooTest() {
 //test
}


[TestCategory("WebServer")]
public void FooTest2() {
 //test
}

在TFS构建模板中,我设置了属性

  1. 基本 - > 1.测试源 - >测试用例过滤到值: TestCategory!= WebServer
  2. 当构建执行NO TESTS执行时。删除过滤器并再次运行所有测试。

    构建日志的输出是

    C:\ Builds \ 2 \ Proj \ Build \ bin \ Debug \ Tests.Integration.dll C:\ Builds \ 2 \ Proj \ Build \ bin \ Debug \ Tests.Unit中没有可用的测试。 DLL C:\ Builds \ 2 \ Proj \ Build \ bin \ Debug \ Tests.Web.dll C:\ Builds \ 2 \ Proj \ Build \ bin \ Debug \ TestStack.BDDfy.dll。确保安装的测试发现者&执行者,平台和框架版本设置是合适的,然后重试。

    我是如何根据类别名称获得排除测试的线索? 如果我使用NUnit控制台运行器,我可以轻松验证该属性是否有效。

3 个答案:

答案 0 :(得分:3)

使用NUnit Test Adapter v1.1 +时,可以在TFSBuild上使用测试类别。您只需要在Test Project中安装软件包,并在构建定义上配置测试用例过滤器。

答案 1 :(得分:2)

here开始,您似乎无法在NUnit测试中使用TestCategory过滤器,仅在MSTest测试中使用。

作为一个注释,您似乎也在更改TFS构建定义的属性,而不是构建模板。这是我所期望的,因为更改构建定义将是改变它的错误位置。

答案 2 :(得分:1)

回答一个老问题,因为这是Google返回的第一个结果。

here看来,这是一个已在1.1版中修复的错误,不幸的是(截至2014年1月22日)尚未发布到nuget