【问题标题】:capybara-webkit: automatically save a screenshot on an RSpec test failurecapybara-webkit:自动保存 RSpec 测试失败的屏幕截图
【发布时间】:2011-10-18 04:59:31
【问题描述】:

当使用带有 Rspec 的 capybara-webkit 测试失败时,如何自动保存 html 和屏幕截图?当 RSpec 测试失败时如何执行回调。

加分:如何避免出现以下错误:

Capybara::Driver::Webkit::WebkitInvalidResponseError 

执行此代码时:

require 'capybara/util/save_and_open_page'
path = "/#{Time.now.strftime('%Y-%m-%d-%H-%M-%S')}"
png = Capybara.save_and_open_page_path + "#{path}.png"
page.driver.render Rails.root.join(png)

【问题讨论】:

    标签: ruby testing rspec capybara


    【解决方案1】:

    我专门为此写了一个gem Capybara-Screenshot,查看https://github.com/mattheworiordan/capybara-screenshot

    它会自动为失败的 RSpec 或 Cucumber 步骤创建屏幕截图。

    【讨论】:

    • 这颗宝石太棒了!谢谢!
    • 或者你可以把save_and_open_screenshot放在没有新宝石的情况下,至少现在:)
    • @Aleks 我赞成你的新答案 - 我们现在可以删除我们的 cmets
    【解决方案2】:

    Capybara 提供了在测试过程中保存和打开屏幕截图的功能。您只需要在测试中的任何地方调用:

    save_and_open_screenshot

    它会打开一张图片,此时测试的样子。 不需要任何额外的宝石。

    Capybara::save_and_open_screenshot

    【讨论】:

      【解决方案3】:

      找到一个可能对你有帮助的要点https://gist.github.com/1156691

      【讨论】:

      • 1) 用于黄瓜,我没有使用。 2)我得到上述错误
      • 不确定错误,但您可以在 rspec 中的每个块之后创建一个检查测试是否通过的块。 Rspec 提供了一个@exception 实例变量,只要检查它是否存在。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-07
      • 1970-01-01
      • 2019-06-18
      相关资源
      最近更新 更多