【问题标题】:Warm up assets compilation for testing为测试预热资产编译
【发布时间】:2014-10-10 07:02:19
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    似乎可以通过使用 capybara 助手来实现:

    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
      

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-22
      相关资源
      最近更新 更多