如何报告不同严重程度的自动化测试失败?

How to report failures of automated tests with different severity?

我如何区分失败的关键测试(应该立即解决)和失败但不是太关键的测试(例如打开错误的默认选项卡的选项卡视图) ?似乎大多数服务(我正在使用 CircleCI)只显示红色或绿色。

我觉得除了绿色和红色之外,我还需要一些中间的“橙色”颜色。是否有任何附加组件或技巧可以帮助我们区分关键测试失败和可接受的测试失败? (例如带有注释@non-critical?)

我正在使用 Cucumber 在 Rails 应用程序上测试 Ruby。

编辑

这里有两种可行的方法(欢迎提出其他方法):

更好的方法是将关键和非关键功能的执行分开。检测严重故障会更快,并且您可以更频繁地 运行 它们。

运行 关键特征标记 @critical :

cucumber --tags @critical

运行 非关键特征未标记 @critical :

cucumber --tags ~@critical

文档:
https://github.com/cucumber/cucumber/wiki/Tags

我强烈建议不要进行 'non-critical' 的测试。二进制 pass/fail 结果易于管理:套件要么通过并且一切正常,要么失败并需要修复。每当我看到按重要性级别划分的测试套件时,团队立即开始只关注重要性最高的组中的测试,而允许更多不太重要的测试失败。

相反,如果某个测试被认为不够重要而无法修复,请将其删除。更好的是,如果某个功能被认为不够重要,无法进行测试,请删除或简化它,这样就没有什么可测试的了。

请注意,产品所有者和开发人员都可以就需要修复的重要问题发表意见。例如,如果开发人员有 100% 代码覆盖率的标准,并且测试是唯一提供部分覆盖率的测试,那么开发人员坚持让测试保持通过是正确的,即使它测试的功能不是产品所有者认为不重要。尽管这会建议应该删除或简化该功能,以便开发人员也不需要测试。