如何确定在构建服务器中构建时要运行或忽略的nunit测试

时间:2014-11-08 08:01:01

标签: c# visual-studio unit-testing msbuild nunit

我想指定我的测试的一个子集,当项目在构建服务器中构建时运行,以便运行集成测试。

我在这里找到了MSTest测试的解决方案: Ignore test categories in TFS build server using DefaultTemplate.xaml

但它对Nunit不起作用。

我找到了Nunit的Category属性,但在构建模板中设置此属性不起作用:

Category=IntegrationTest

虽然我标记了我的测试:

[Category("IntegrationTest")]
[TestFixture]
public MyTestClass ...

3 个答案:

答案 0 :(得分:1)

您可以创建自定义类别(继承类别类),然后在您的构建脚本中可以忽略此类别

这是psake + mstest的一个示例,但它可以很容易地应用于NUnit以及您使用的任何构建系统

http://log.ld.si/post/longrunningtests-as-a-separate-psake-task

答案 1 :(得分:1)

为什么你在同一个项目中拥有它们?我建议将集成测试分离到单独的程序集。因为他们是不同的东西"他们"应该"分开!

答案 2 :(得分:0)

我们遇到了同样的问题,我提出了这个解决方案。 将您的UnitTests放在一个(或多个)项目中,将IntegrationTests放在另一个项目中(或多个)。 线索是通过项目名称识别其UnitTest或IntegrationTest。 例如,除了其他具体描述之外,我们将所有UnitTest项目命名为“UnitTest”。

然后在你的builddefinition中你可以描述构建服务器应该用来加载单元测试的过滤器,并且只加载文件名中包含UnitTest的dll。