预热资产编译以进行测试

时间:2014-10-10 07:02:19

标签: ruby-on-rails capybara integration-testing

我在CI服务器上运行我的测试。当测试运行首次访问索引页时,我偶尔会遇到一些令人讨厌的超时问题。这是资产编制开始的地方。由于我拥有的资产数量,这通常会导致Chrome浏览器尝试打开网络时出现超时错误。

有没有办法可以在测试运行之前预热资产编译,以便在短时间内完成请求?

1 个答案:

答案 0 :(得分:0)

似乎可以通过使用水豚帮手来实现:

  1. 创建一个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
    
  2. 运行此命令以在测试之前预热:

    bundle exec rake test:warmup RAILS_ENV=test