抑制某些黄瓜步骤的输出

时间:2011-01-13 20:05:31

标签: ruby-on-rails cucumber

我正在使用黄瓜和硒进行整合测试,并定义了一个黄瓜步骤,它采用当前页面的屏幕截图,如下所示:

Then /^save screenshot as "(.+)"$/ do |name|
  embed_screenshot name
end

(如果感兴趣,请参阅this blog post了解屏幕截图嵌入的工作原理。)

例如,场景的一部分可能如下所示:

...
When I go to the login page
And save screenshot as "authentication_1_login_page"
...

一切都很好,但当然屏幕截图步骤本身也包含在黄瓜的输出中,这有点分散注意力,因为它与实际测试无关。有没有办法将此步骤定义为“静默”,以便只执行它应该执行的操作但不包含在输出中的不同步骤中?

谢谢!

2 个答案:

答案 0 :(得分:1)

如果您需要更细粒度的控制,那么您可能需要编写自己的自定义格式化程序。 https://github.com/aslakhellesoy/cucumber/wiki/custom-formatters有关于如何执行此操作的信息。基于快速阅读,我会说你应该实现一个step_name函数,然后写出结果,如果你得到的步骤名称(参见TwitterFormatter链接的例子)不包含“保存截图”。

答案 1 :(得分:0)

我不知道有什么方法可以抑制你所描述的步骤,但是如果你想在所有或大部分测试中截取屏幕截图,那么从场景中截取屏幕截图并使用钩子可能是一个好的解决方案有关详细信息,请参阅here。这也有助于让您的场景集中在用户实际做的事情上,而不是将其与实施测试相关的步骤混为一谈。