【问题标题】:Only load rake rasks in a certain environment?只在特定环境中加载 rake 任务?
【发布时间】:2012-02-13 11:15:09
【问题描述】:

现在,我正在使用 bundler 来管理我的 gem。 Bundler 为不同的环境加载不同的 gem。

我有一些使用测试 gem (rspec) 的 rake 任务,但这些会在未加载该 gem 的生产环境中导致问题。

所以我想做的就是只在测试环境中加载 rake 任务(以及与之关联的 require 'rspec/core/rake_task' 行)。

我想不出最好的方法。

我目前有:

require "bundler"
require 'rspec/core/rake_task'

desc "Task for running Rspec tests"
RSpec::Rake::SpecTask.new(:spec)

【问题讨论】:

标签: ruby-on-rails rake bundler


【解决方案1】:

一种可能的解决方案(可能不是所有设置的理想选择)是将 rake 任务添加到您的 gitignore。

【讨论】:

    【解决方案2】:

    怎么样:

    require "bundler"
    
    unless Rails.env.production?
      require 'rspec/core/rake_task'
    
      desc "Task for running Rspec tests"
      RSpec::Rake::SpecTask.new(:spec)
    end
    

    不是最漂亮的解决方案,但它会起作用。

    【讨论】:

    • 实际上,我认为那里的要求仍然会导致失败。但我想它也可以包含在除非。
    猜你喜欢
    • 2012-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-28
    • 2015-06-17
    • 2015-03-10
    • 2015-10-29
    • 1970-01-01
    相关资源
    最近更新 更多