如果使用带有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)
答案 0 :(得分:15)
我专门为此编写了一张宝石Capybara-Screenshot,请查看https://github.com/mattheworiordan/capybara-screenshot
它将在失败的RSpec或Cucumber步骤中自动创建屏幕截图。
答案 1 :(得分:2)
找到可能对您有所帮助的要点https://gist.github.com/1156691
答案 2 :(得分:1)
Capybara提供了在测试期间保存和打开屏幕截图的功能。您只需要在测试中的任何地方打电话:
$.ajax({
type: 'GET',
url: '/admin/select_category',
data: {
provider: provider
},
success: (function (data) {
$('#select_category').children('option').remove();
$('#select_category').prepend('<option value=""></option>');
$.each(data.categories, function () {
$('#select_category').append('<option value="' + this.id + '">' + this.name + '</option>')
})
})
})
它会打开一张图片,看看测试在那一点上是什么样的。 不需要任何额外的宝石。