如何防止Rake测试调用任务db:test:prepare

时间:2009-07-08 12:47:02

标签: ruby-on-rails rake

每次我想运行Rake测试时,都会调用任务db:test:prepare,它会从schema.rb和migrations重建我的测试环境数据库。我想要实现的是禁用db:test的调用:当我想测试make Rails应用程序时准备。是否可以不修改Rails gem?

3 个答案:

答案 0 :(得分:13)

这是我见过的解决方案:

在您的Rakefile中:

Rake::TaskManager.class_eval do
  def remove_task(task_name)
    @tasks.delete(task_name.to_s)
  end
end

lib/tasks/db/test.rake

Rake.application.remove_task 'db:test:prepare'

namespace :db do
  namespace :test do 
    task :prepare do |t|
      # rewrite the task to not do anything you don't want
    end
  end
end

答案 1 :(得分:5)

有一个插件可以为您解决此问题:override_rake_task。这是一个快速使用示例:

namespace :db do
  namespace :test do
    override_task :prepare do; end
  end
end

答案 2 :(得分:0)

对于某些旧版本的rails - 您可以将Rake::Task['db:test:prepare'].clear放在Rakefile的末尾