Ruby 在黄瓜场景中我可以强制执行什么结果

Ruby 在黄瓜场景中我可以强制执行什么结果,ruby,cucumber,scenarios,Ruby,Cucumber,Scenarios,使用ruby/cucumber,我知道您可以显式调用fail(“message”),但您还有什么其他选择 我问的原因是我们有0。。。我重复一遍,绝对不能控制我们的测试数据。我们有cucumber测试来测试边缘情况,我们的数据库中可能有用户,也可能没有用户。我们(出于明显的原因)不想放弃这些测试,因为它们是有价值的;但是,由于我们的数据集无法测试该边缘情况,它会失败,因为sql语句返回一个空数据集。现在,我们只是让那些测试失败了,但是如果sql语句返回一个空数据集,我希望看到类似于“no_data

使用ruby/cucumber,我知道您可以显式调用
fail(“message”)
,但您还有什么其他选择

我问的原因是我们有0。。。我重复一遍,绝对不能控制我们的测试数据。我们有cucumber测试来测试边缘情况,我们的数据库中可能有用户,也可能没有用户。我们(出于明显的原因)不想放弃这些测试,因为它们是有价值的;但是,由于我们的数据集无法测试该边缘情况,它会失败,因为sql语句返回一个空数据集。现在,我们只是让那些测试失败了,但是如果sql语句返回一个空数据集,我希望看到类似于“no_data”之类的东西。所以输出看起来像

Scenarios:  100 total (80 passed, 5 no_data, 15 fail)
如果有
skip(“message”)
功能,我愿意使用已经实现的“skiped”


我的选择是什么,这样我们就可以看到,在当前数据的情况下,我们只是没有这些测试的任何测试数据?进行这些手动测试也不是一种选择。它们需要每周都用我们的自动化系统运行,但不知何故要与故障分开。失败意味着缺陷,没有发现数据意味着它不是一个可测试的条件。这是警告:我们尚未测试此边缘情况与警告:代码已损坏之间的区别。

您不能调用“跳过”,但您当然可以调用
挂起
,并显示或不显示错误消息。我在和你类似的情况下用过这个。除非您在严格模式下运行,否则挂起的场景不会导致任何失败。我遇到的问题是,有时一个步骤会拼写错误,导致cucumber将其标记为挂起,因为它与步骤定义不匹配。然后,它就消失在“合法”的悬而未决的场景中,在我们发现它的几周之前

我还将summary.rb和html.rb文件放在cucumber gem中,因此当我们在测试套件结束时输出结果时,“挂起的”测试实际上显示“no_data”,而不是挂起的。这使邮局更容易阅读。