2014-02-20 46 views
1

继012xx 的示例后,Rakefile中的task spec: :factory_specs行告诉rake在“spec”任务之前执行“factory_specs”任务。防止Rake任务依赖从加载Rails两次

我的问题是,rake spec加载Rails环境两次,一个执行factory_specs任务,然后另一个执行spec任务。

如何防止我的rake命令加载两次Rails?

我的堆栈:

  • 红宝石1.9.3p484
  • 的Rails 3.2.13
+0

耙子已经优化了这个。 (即如果您调用两个任务请求并且两者具有相同的依赖关系,则只调用一次)。事实上,在一个调用链中,相同的任务将永远不会执行多次 – Selva

+0

不适用于我的堆栈和场景。在任务运行之前,每次加载Rails需要大约30秒的时间,而任务本身只需要2秒就可以运行。 – konyak

回答

0

随着FactoryGirl的最新版本,您可以使用FactoryGirl.lint,而不是在一个单独明确地测试你的工厂耙任务。只要更新到最新版本,并添加到您的spec_helper.rb

RSpec.configure do |config| 
    config.before(:suite) do 
    FactoryGirl.lint 
    end 
end 

更多信息是在Getting Started Guide

+0

至今为止最好的回答,谢谢! FactoryGirl刚刚在14天前添加了此功能......恰逢其时。 – konyak