只在特定环境中加载rake任务?

时间:2012-01-18 18:13:04

标签: ruby-on-rails rake bundler

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

我有一些使用测试宝石(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)

2 个答案:

答案 0 :(得分:11)

怎么样:

require "bundler"

unless Rails.env.production?
  require 'rspec/core/rake_task'

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

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

答案 1 :(得分:0)

可能的解决方案,可能不适合所有设置,是将rake任务添加到gitignore。