当您在TFS构建服务器上构建时,失败的单元测试会导致构建显示橙色警报状态,但它们仍然会成功"。有没有办法将单元测试标记为关键,如果失败,整个构建将失败?
我用Google搜索并没有找到任何内容,而且我在框架中看不到任何属性,所以我猜测答案是否定的。但也许我只是在寻找错误的地方。
答案 0 :(得分:5)
有一种方法可以做到这一点,但您需要创建多个测试运行,然后过滤您的测试。在测试中,设置TestCategory属性:
[TestCategory("Critical")]
[TestMethod]
public void MyCriticalTest {}
对于NUnit,您应该可以使用[Category("Critical")]
。 test you can filter on, including the name有多个属性。
TestMethodDisplayNameName
FullyQualifiedTestMethodName
PriorityAttributeValue
TestCategoryAttributeValue
ClassName
这些运营商:
XUnit .NET currently does not support TestCaseFilters。
然后在您的构建定义中,您可以创建两个测试运行,一个运行Critical测试,一个运行其他所有测试。您可以使用测试运行的Filter option。
使用此难以找到的按钮打开“测试运行”窗口:
创建2个测试运行:
在第一次运行时,设置选项如下:
在第二次运行时,设置选项如下:
这样Team Build将使用" Ciritical "进行任何测试。第一次运行中的类别将失败。如果第一次运行成功,它将启动非关键测试,即使测试失败,也会部分成功。
答案 1 :(得分:0)
是。
使用TFS2013默认模板:
在“处理”标签下,转到第2节“基本”。
展开自动化测试部分。
对于“测试源”,单击省略号(“...”)。
这将打开一个新窗口,其中包含“测试失败时失败”复选框。