11

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

4

3 回答 3

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
于 2009-07-09T01:04:00.387 回答
5

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

namespace :db do
  namespace :test do
    override_task :prepare do; end
  end
end
于 2009-07-09T00:37:57.570 回答
0

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

于 2014-12-10T03:25:15.337 回答