`耙::任务[“DB:种子”] invoke`不起作用 - “不知道如何建设任务‘DB:种子’”

问题描述 投票:0回答:2

我有我的测试rake任务的问题。这项任务看起来是这样的:

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

一些想法?

ruby-on-rails rspec rake-task
2个回答
0
投票

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

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

0
投票

为了能够通过调用任务

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

你应该首先通过加载任务

Rails.application.load_tasks
© www.soinside.com 2019 - 2024. All rights reserved.