Rake :: Task ['db: seed']. Invoke` не работает - "Не знаю, как создать задачу" db: seed "" - PullRequest
0 голосов
/ 05 февраля 2019

У меня проблема с тестированием моего рейка.Задача выглядит так:

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 голосов
/ 06 февраля 2019

Чтобы иметь возможность вызывать задачу через

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

, сначала вы должны загрузить задачи через

Rails.application.load_tasks
0 голосов
/ 05 февраля 2019

Хорошо, я нашел обход:

RSpec.describe Rake::Task do
  describe "db:seed" do
    it "runs a task" do
      system('rake db:seed')
    end
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...