【问题标题】:Suppress output of certain cucumber steps抑制某些黄瓜步骤的输出
【发布时间】:2011-01-13 20:05:31
【问题描述】:

我正在使用 cucumber 和 selenium 进行集成测试,并定义了一个 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"
...

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

谢谢!

【问题讨论】:

    标签: ruby-on-rails cucumber


    【解决方案1】:

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

    【解决方案2】:

    我不知道有一种方法可以像您描述的那样抑制步骤,但是如果您想在所有或大部分测试中截取屏幕截图,则将屏幕截图步骤从场景中取出并使用挂钩可能是一种很好的解决方案。请参阅here 了解更多信息。这也有助于让您的场景专注于用户实际会做的事情,而不是将它们与进行测试相关的步骤搞得一团糟。

    【讨论】:

    • 谢谢,但我需要更精细地控制何时截取屏幕截图,以及如何命名,所以钩子对我来说真的不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-20
    • 2017-11-13
    • 1970-01-01
    相关资源
    最近更新 更多