确定黄瓜方案是否有待处理的步骤

时间:2013-12-17 22:30:59

标签: cucumber gherkin

我想在“After”场景钩子中检索场景状态。我注意到.failed?方法不会将挂起的步骤视为失败的步骤。

那么我怎样才能确定一个场景没有完全执行,因为它失败了,因为某些步骤没有实现/定义。

2 个答案:

答案 0 :(得分:2)

您可以使用状态方法。状态的默认值为:skipped,失败的值为:failed,传递的步骤为:passed。所以你可以这样写:

do sth if step.status != :passed

此外,如果您使用!step.passed?,它会执行相同的操作,因为它只会检查:passed状态。

关于该主题,您还可以查看有关向客户演示功能规格的帖子:http://multifaceted.io/2013/demo-feature-tests/

答案 1 :(得分:1)

LiohAu,您可以在方案本身而不是单个步骤上使用“状态”方法。试试这个:在钩子中,添加

After do |scenario|
  p scenario.status
end

这将给出如下状态: 任何未实现/定义的步骤,它都会给你:undefined 场景失败(定义所有步骤时):失败 场景传递:传递

使用相同的钩子,它将为您提供场景轮廓的状态,但是对于每个示例行(因为对于每个示例行,它是一个单独的场景)。因此,如果您想要整个轮廓的结果,则需要捕获所有示例行的结果并相应地计算最终结果。

希望这有帮助。