12

在 TFS 2012 中,我们有几个构建定义 - CI、部署和 nightly。

我们的 CI 构建运行我们解决方案中的所有 (n) 个单元测试,但是,我们需要让它忽略某些测试。

这是因为我们有一些长时间运行的集成测试,而且这些测试只需要每晚运行一次。

我尝试过的事情:

  • 使用TestCategoryAttribute(来自 MSTest)并设置测试用例过滤器属性尝试排除“集成”。
  • 使用CategoryAttribute(来自 NUnit)并设置测试用例过滤器属性尝试排除“集成”。
  • 以上的组合。

需要忽略的测试都在名称中带有单词 IntegrationTests 或 Integration.Tests 的单独程序集中。

谢谢,
基龙

4

1 回答 1

10

我一直在单元测试中使用 MSTest TestCategory 属性和 TFS 2012 中构建过程定义的测试类别过滤器设置的组合。

根据此处 找到的 Microsoft MSDN 文章,您可以通过将测试类别过滤器设置为来指定要使用的类别

TestCategory=CategoryName

根据您的原始帖子,您需要使用以下过滤器:

TestCategory!=Integration

并使用此属性装饰您的测试:

[TestCategory("Integration")] 

对您希望在构建期间忽略的所有单元测试执行此操作。测试列表在 Visual Studio 中已被弃用,将所有内容转换为类别需要一段时间,但最终它是值得的。

希望有帮助!

于 2012-11-20T04:03:47.117 回答