我成功使用Cucumber来处理基于Java的测试。
有时这些测试会遇到回归问题,修复发现的问题需要时间(取决于问题的优先级,可能需要数周甚至数月)。所以,我正在寻找一种方法来将黄瓜测试标记为已知问题。不希望这些测试在整个测试集中失败,只是想标记它们,例如,在报告中将其标记为黄色,而不是。
我知道我可以为失败的测试指定@tag并将它们从执行列表中排除,但这不是我想要做的,因为我仍然需要这些测试不断运行。一旦问题得到解决,适当的测试应该再次为绿色,无需任何额外的标签操作。
其他一些框架提供了这样的功能(运行测试但在失败的情况下忽略其结果)。是否有可能以某种方式使用Cucumber做同样的技巧?
我现在使用的最终解决方案 - 用特定标记标记已知问题,从常规轮次中排除这些测试并单独运行它们。但这并不是我认为最好的解决方案。
任何想法都赞赏。提前谢谢。
答案 0 :(得分:0)
我会考虑在导致已知失败的步骤中抛出一个挂起的异常。这将允许执行该步骤而不会被遗忘。
我还会考虑以这样的方式重写失败的步骤:当发生故障时,它会被捕获并且抛出挂起的异常而不是实际的失败。这意味着当问题得到解决并且抛出待处理异常的原因消失后,你就会有一个过时的套件。
我努力工作的另一件事是不要让问题变老。问题就像孩子一样,当他们长大后,他们会越来越难以修复。在年轻时(也许是几分钟)解决问题通常很容易。解决几个月前的问题更难。
答案 1 :(得分:0)
你不应该。
我的观点是,如果您的测试失败,那么您应该为这些场景添加错误/任务票证,并将它们添加到带有相关标记的构建状态页面中。 您可以做的另一件事是将票号添加为标签,并在勾选定价后删除。
如果您的方案因错误而失败,那么报告应该显示,如果方案没有完全实施,那么最好不要再运行它。
您可以做的一件事是为这些方案添加特定的标记/名称,并尝试使用before方法获取标记并检查添加的特定标记/名称并抛出待处理的异常。
我建议如果出现错误,请保持这些方案的运行,并在状态页面中记录这些情况。
我认为客户会更好地理解这些情景是否是红色的,因为它们是失败的而不是黄色的"灰色"正在发生的事情。
如果您需要运行状态来触发某个CI作业,那么最好更改那里的条件。
正如我所看到的那样,你需要考虑的事情应该是:黄色或红色之间的区别是什么,未决或失败对你或客户来说?,你会想要保持明显的差别并保持追踪真实状况。
您应该在电子邮件中解决这些问题,与项目团队和QA团队讨论,在做出最终决定后,您也应该得到客户的反馈。