2015-02-11 75 views
0

我正在使用Cucumber报告Jenkins插件(http://www.masterthought.net/section/cucumber-reporting)向所有利益相关方显示所有黄瓜结果。这些表格显示了传递和未决的步数,这很好:在冲刺开始时,我添加了我的方案,并且所有新步骤都处于待定状态。他们一点一点地通过。忽略某些例外以避免构建失败

但是我面临一个问题:在使用黄瓜时,挂起的步骤实际上是默认抛出一个PendingException,直到我们实际实现它们。而这些PendingExceptions使得我的Maven构建不稳定,因为它们被视为测试失败,而他们却不是。

所以更普遍的是:有没有一种方法来配置Maven,使得一些异常被忽略,我的构建成功了?理想情况下,我想在某处配置一个不应该被考虑的Exception类的列表:如果在执行我的测试套件时只抛出PendingException,那么编译应该没问题,并且挂起的步骤应该显示在Cucumber报告中。

到目前为止我找不到任何东西;我已经看过surefire,但我需要比testFailureIgnore更多的属性:我还需要指定我忽略哪种类型的失败。有没有人遇到过这个用例?

感谢

文森特

+0

你有没有考虑过这样的事情? http://stackoverflow.com/questions/13680334/how-to-have-test-job-in-jenkins-to-mark-build-as-stable-and-not-unstable – Eswar 2015-02-11 20:17:03

+0

是的,我看到这个,但我不要认为它适用于我,因为我需要结合使用正则表达式,例如“如果发现PendingException **,则会成功并且**没有找到其他异常”。我真的觉得最好将Surefire配置为不报告由配置的异常生成的故障 – 2015-02-12 03:42:22

回答

0

实际上,专门为我的黄瓜报告的问题,我已经找到了,为什么我的悬而未决的步骤使构建失败的原因;它不回答“如何忽略构建中的特定异常”的通用问题,但它有助于我的功能报告。

我通常喜欢在我的Cucumber测试中使用strict = true选项:这种方式在IDE中,我知道我没做完,直到它变成绿色。但如果我想要挂起/跳过步骤不会失败我的构建,我必须删除严格的选项。

我将在构建时探讨覆盖严格值的可能性:如果我在开发时间的严格测试中保持严格= true,但我可以在构建时覆盖该值,那太棒了!

+0

快速完成此操作的方法是为您的开发选项构建不同的runner类。那么你可以在IDE中测试时执行此操作,并在你的Maven版本中执行另一个跑步者 – Dude 2015-04-14 08:10:54

+0

有没有办法在运行时更改跑步者?我通常在我的测试中使用@RunWith硬编码;我从来没有见过一个例子,跑步者动态设置 – 2015-04-14 15:33:09

+0

据我所知,没有简单的方法来做到这一点,为什么不做我上面提到的? – Dude 2015-04-15 07:42:40