TFS构建服务器和关键单元测试

时间:2015-01-19 14:56:15

标签: unit-testing tfs build

当您在TFS构建服务器上构建时,失败的单元测试会导致构建显示橙色警报状态,但它们仍然会成功"。有没有办法将单元测试标记为关键,如果失败,整个构建将失败?

我用Google搜索并没有找到任何内容,而且我在框架中看不到任何属性,所以我猜测答案是否定的。但也许我只是在寻找错误的地方。

2 个答案:

答案 0 :(得分:5)

有一种方法可以做到这一点,但您需要创建多个测试运行,然后过滤您的测试。在测试中,设置TestCategory属性:

[TestCategory("Critical")]
[TestMethod]
public void MyCriticalTest {}

对于NUnit,您应该可以使用[Category("Critical")]test you can filter on, including the name有多个属性。

  • 名称= TestMethodDisplayNameName
  • FullyQualifiedName = FullyQualifiedTestMethodName
  • 优先级= PriorityAttributeValue
  • TestCategory = TestCategoryAttributeValue
  • ClassName = ClassName

这些运营商:

  • =(等于)
  • !=(不等于)
  • 〜(仅包含字符串值的子字符串)
  • &安培; (和)
  • | (或)
  • ()(分组的paranthesis)

XUnit .NET currently does not support TestCaseFilters

然后在您的构建定义中,您可以创建两个测试运行,一个运行Critical测试,一个运行其他所有测试。您可以使用测试运行的Filter option

使用此难以找到的按钮打开“测试运行”窗口: enter image description here

创建2个测试运行: enter image description here

在第一次运行时,设置选项如下: enter image description here

在第二次运行时,设置选项如下: enter image description here

这样Team Build将使用" Ciritical "进行任何测试。第一次运行中的类别将失败。如果第一次运行成功,它将启动非关键测试,即使测试失败,也会部分成功。

更新

same process explained for Azure DevOps Pipelines

答案 1 :(得分:0)

是。

使用TFS2013默认模板:

在“处理”标签下,转到第2节“基本”。

展开自动化测试部分。

对于“测试源”,单击省略号(“...”)。

这将打开一个新窗口,其中包含“测试失败时失败”复选框。