我想指定我的测试的一个子集,当项目在构建服务器中构建时运行,以便运行集成测试。
我在这里找到了MSTest
测试的解决方案:
Ignore test categories in TFS build server using DefaultTemplate.xaml
但它对Nunit不起作用。
我找到了Nunit的Category
属性,但在构建模板中设置此属性不起作用:
Category=IntegrationTest
虽然我标记了我的测试:
[Category("IntegrationTest")]
[TestFixture]
public MyTestClass ...
答案 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。