2016-07-27 20 views
3

我成功地使用Cucumber来处理我的基于Java的测试。黄瓜 - 如何标记预期失败作为已知问题?

有时这些测试会遇到回归问题,修复发现的问题需要时间(取决于问题优先级,可能需要数周甚至数月)。所以,我正在寻找一种方法将一些黄瓜测试标记为已知问题。不希望这些测试失败整个测试集,只是想标记它们,例如,在报告中用黄色表示待定。

我知道我可以为失败的测试指定@tag并将它们从执行列表中排除,但这不是我想要做的,因为我仍然需要这些测试持续运行。一旦问题得到解决,适当的测试应该是绿色的,不需要额外的标签操作。

其他一些框架提供了这样的功能(运行测试但在失败的情况下忽略其结果)。是否有可能使用Cucumber以某种方式执行相同的技巧?

我现在使用的最终解决方案 - 用特定标记标记已知问题,从常规轮次中排除这些测试并单独运行它们。但这不是我相信的最佳解决方案。

任何想法赞赏。提前致谢。

+0

创建一个@known_error标记(或任何你想要调用它的标记)以应用于已知的错误。分两个阶段运行,其中一个排除\ @known_error,另一个仅包含\ @known_error。把它们放回去。要求第一个是绿色的,第二个要经过“毕业”考试。如果您有构建失败的依赖关系,则仅取决于第一个结果。 –

+0

戴夫,这正是我现在所做的:)但在这种情况下,我的主要报告不包含有关已知问题的信息,我必须分别跟踪它们。 –

回答

0

我会考虑在导致已知失败的步骤中引发未决异常。这将允许该步骤被执行而不被遗忘。

我也会考虑重写失败的步骤,当发生失败时,它会被捕获并抛出一个未决的异常而不是实际的失败。这意味着,如果问题得到解决并且抛出未决异常的原因消失了,那么您就有一个传递套件。

我会努力工作的另一件事是不要让一个问题变老。问题就像孩子,当他们长大后,他们越来越难以修复。在年轻时解决问题,也许几分钟,通常很容易。解决几个月前的问题比较困难。

+0

感谢您的建议,托马斯!我会尽量发挥待处理的异常,这可能会有所帮助。关于“不要让问题变老” - 这是一个可惜的问题,但作为一名QA工程师,我对于为实际问题分配优先级没有任何影响力。我所能做的只是尽可能经常提醒,但并不能保证我的声音会被考虑在内:) –

+0

可能发生的情况是,其他人不在乎是否有什么事情被打破或者不听质量保证工程师。这就是为什么我会努力避免它。但是如果别人不在乎,我就不会把自己打死。 –

+0

标记为答案,因为它确实有助于解决我描述的问题。但是,这并不意味着我开始使用它,因为这种方法也有一些缺点。无论如何,这至少是一种新的解决方案,并且非常接近我所期待的。谢谢大家,伙计! –

0

你不应该。

我的意见是,如果你的测试失败了,那么你应该为这些场景添加一个bug /任务单,并将它们添加到具有相关标记的构建状态页中。 您可以做的另一件事是将票号添加为标签,并在修复后删除。

如果您有因故障而失败的场景,那么报告应该显示,如果场景没有完全实现,那么最好不要运行它。

你可以做的一件事是为这些场景添加一个特定的标记/名称,并尝试在之前的场景方法中获取标记并检查添加的特定标记/名称并抛出未决的异常。

我建议保持这些场景运行,如果有错误并在状态页面中记录该场景。

我认为客户会更好地理解,如果这些情况是红色的,因为他们失败,而不是一些黄色,发生了什么“灰色”的状态。

如果您需要运行的状态来触发某个CI作业,那么最好改变那里的状态。

正如我所看到的,你需要给它一个想法应该是:黄色或红色之间的区别是什么,等待还是失败,你或你的客户?,你会魔杖保持明显的差异,并跟踪真实状态。

您应该在电子邮件中解决这些问题,与项目团队和QA团队讨论这些问题,在做出最终决定后,您还应该收到客户的反馈。