“ Rake :: Task ['db:seed']。invoke`不起作用-”不知道如何构建任务'db:seed'“

时间:2019-02-05 16:08:12

标签: ruby-on-rails rspec rake-task

我在测试耙任务时遇到问题。任务看起来像这样:

namespace :db do
  desc 'Load the seed data from db/seeds.rb'
  task :seed => :environment do
    puts 'seed'
  end
end

我的测试是这样的:

require 'rake'
require 'spec_helper'

RSpec.describe Rake::Task do
  describe "db:seed" do
    it "runs a task" do
      Rake::Task['db:seed'].invoke
    end
  end
end

一切看起来都不错,但我仍然遇到该错误:

 Failure/Error: Rake::Task['db:seed'].invoke
   RuntimeError:
     Don't know how to build task 'db:seed' (See the list of available 
     tasks with `rake --tasks`)

最奇怪的是,通过控制台调用时,同一任务有效:

> rake db:seed
seed

一些想法?

2 个答案:

答案 0 :(得分:0)

好的,我发现了一个旁路:

RSpec.describe Rake::Task do
  describe "db:seed" do
    it "runs a task" do
      system('rake db:seed')
    end
  end
end

答案 1 :(得分:0)

能够通过调用任务

packaging

您应该首先通过以下方式加载任务

Rake::Task['...'].invoke