我在CI服务器上运行我的测试。当测试运行首次访问索引页时,我偶尔会遇到一些令人讨厌的超时问题。这是资产编制开始的地方。由于我拥有的资产数量,这通常会导致Chrome浏览器尝试打开网络时出现超时错误。
有没有办法可以在测试运行之前预热资产编译,以便在短时间内完成请求?
答案 0 :(得分:0)
似乎可以通过使用水豚帮手来实现:
创建一个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