How to report failures of automated tests with different severity?
如何区分失败的关键测试(应该立即解决)和失败但不是太关键的测试(例如,打开了错误的默认选项卡的选项卡视图)?似乎大多数服务(我正在使用CircleCI)仅显示红色或绿色。
我觉得除了绿色和红色之外,我还需要一些中间的"橙色"颜色。是否有任何附加组件或技巧可以帮助我们区分关键测试失败和可接受的失败? (例如,带有注释@ non-critical?)
我正在使用Cucumber来测试Ruby on Rails应用程序。
编辑
这里有两种可行的方法(可以随意建议其他方法):
-
一个单独的构建警报,不仅是"绿色"或"红色",还可能是"黄色/橙色",具体取决于哪些测试失败
-
许多版本,只能是绿色或红色,但是会被标记为
Build of"critical tests" succeeded with 0 errors (green)
Build of"non-critical" tests failed with 10 errors (red)
更好的方法是将关键功能和非关键功能分开。这样可以更快地检测到严重故障,并且您可以更频繁地运行它们。
运行带有
1 | cucumber --tags @critical |
运行未用
1 | cucumber --tags ~@critical |
文档:
https://github.com/cucumber/cucumber/wiki/Tags
我强烈建议您不要进行"非关键"测试。二进制通过/失败结果易于管理:套件要么通过且一切正常,要么失败并需要修复。每当我看到将测试套件划分为重要性级别时,团队就会立即开始只关注重要性最高的组中的测试,而更多次重要的测试则被允许失败。
相反,如果认为测试的重要性不足以进行修复,则将其删除。更好的是,如果某项功能被认为不足够重要而无法测试,请删除或简化该功能,以使没有任何测试。
请注意,产品所有者和开发人员都需要就足够重要的问题进行修复。例如,如果开发人员的标准是100%的代码覆盖率,而测试是唯一提供部分覆盖率的测试,那么即使测试功能不具备,开发人员也应坚持要求该测试保持通过状态\\产品负责人认为不重要。尽管这样会建议应删除或简化该功能,以便开发人员也不需要测试。