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