【问题标题】:How to determine which nunit tests to run or ignore while building in build server如何确定在构建服务器时运行或忽略哪些 nunit 测试
【发布时间】:2014-11-08 08:01:00
【问题描述】:

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

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

但它不适用于 Nunit。

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

Category=IntegrationTest

当我将我的测试标记为:

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

【问题讨论】:

  • 为什么他们在同一个项目中?我建议将集成测试分离到一个单独的程序集中。由于它们是不同的“事物”,它们“应该”分开......!
  • @Jocke 是的,你是对的。事实上,我也得到了同样的结果。我现在把它们分开了。我认为您的评论可以作为答案发布!

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


【解决方案1】:

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

这是 psake + mstest 的示例,但它可以轻松应用于 NUnit 以及您使用的任何构建系统

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

【讨论】:

    【解决方案2】:

    为什么将它们放在同一个项目中?我建议将集成测试分离到一个单独的程序集中。由于它们是不同的“事物”,它们“应该”分开!

    【讨论】:

      【解决方案3】:

      我们遇到了同样的问题,我想出了这个解决方案。 将您的单元测试放在一个(或多个)项目中,将您的集成测试放在另一个项目(或多个)中。 线索是通过项目名称识别它的 UnitTest 或 IntegrationTest。 例如,我们将所有的 UnitTest 项目命名为“UnitTest”,以及其他具体描述。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-12-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-24
        • 2015-04-22
        • 1970-01-01
        相关资源
        最近更新 更多