【发布时间】:2014-10-10 07:02:19
【问题描述】:
我正在 CI 服务器上运行我的测试。当测试运行程序第一次访问索引页面时,我偶尔会遇到一个令人讨厌的超时问题。这是资产编译开始的地方。由于我拥有大量资产,这通常会导致 Chrome 浏览器尝试打开网络时出现超时错误。
有没有办法可以在测试运行之前预热资产编译,以便在短时间内完成请求?
【问题讨论】:
标签: ruby-on-rails capybara integration-testing
我正在 CI 服务器上运行我的测试。当测试运行程序第一次访问索引页面时,我偶尔会遇到一个令人讨厌的超时问题。这是资产编译开始的地方。由于我拥有大量资产,这通常会导致 Chrome 浏览器尝试打开网络时出现超时错误。
有没有办法可以在测试运行之前预热资产编译,以便在短时间内完成请求?
【问题讨论】:
标签: ruby-on-rails capybara integration-testing
似乎可以通过使用 capybara 助手来实现:
创建一个rake任务(输入lib/tasks):
namespace :test do
desc 'Warm up assets'
task :warmup => :environment do
require 'capybara/rails'
Capybara.default_driver = :selenium
Capybara.register_driver :selenium do |app|
Capybara::Selenium::Driver.new(app, :browser => :chrome)
end
include Capybara::DSL
puts "Warm up assets compilation by requesting root_path"
visit "/" rescue nil
end
end
在测试前运行此命令进行预热:
bundle exec rake test:warmup RAILS_ENV=test
【讨论】: