How to prevent Rake test to call task db:test:prepare

后端 未结 3 1787
無奈伤痛
無奈伤痛 2020-12-15 09:54

Every time I want to run Rake test the task db:test:prepare is being called and it rebuilds my test environment database from schema.rb and migrations. What I would like to

相关标签:
3条回答
  • 2020-12-15 10:24

    Here's a solution I've seen around:

    In your Rakefile:

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

    In 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
    
    0 讨论(0)
  • 2020-12-15 10:26

    For some older version of rails - you can place Rake::Task['db:test:prepare'].clear at the end of your Rakefile

    0 讨论(0)
  • 2020-12-15 10:35

    There is a plugin that takes care of this for you: override_rake_task. Here is a quick usage example:

    namespace :db do
      namespace :test do
        override_task :prepare do; end
      end
    end
    
    0 讨论(0)
提交回复
热议问题