Как запустить стандартные грабли в Rails 5? - PullRequest
0 голосов
/ 09 ноября 2018

Вот для кого-то простоя ...

Назад в Rails <= 4 дня мы запускали наш набор тестов, просто набирая <code>$ rake в командной строке, благодаря значениям по умолчанию в Rakefile:

task default: [:rubocop, :spec, :teaspoon]

но в Rails 5 не так очевидно, как запускать грабли по умолчанию теперь, когда rake был заменен на rails. rails один дает список возможных команд, на которые rails отвечает, но не запускает спецификации. rails test кажется логичным, но он пытается запустить мини-тест, который мы не используем. rails spec будет запускать Rspec, но не чайная ложка или рубокоп .

Куда это делось? И почему мне так трудно найти что-то такое простое?

Ответы [ 2 ]

0 голосов
/ 09 ноября 2018

Просто создайте новую задачу rake, которая запускает другие:

Lib / задачи / my_extensions.rake
task :my_test do
  Rake::Task[:foo].invoke
  Rake::Task[:bar].invoke
end
# or the short version:
# task my_test: [:foo, :bar]

task :foo do
  puts "FOO"
end

task :bar do
  puts "BAR"
end

Запустите rails my_test, и вы увидите FOO и BAR, напечатанные на вашей консоли.

Если вы не знаете , куда поместить файл для написания кода выше, проверьте /Rakefile:

# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.

require_relative 'config/application'

Rails.application.load_tasks

Там написано, что они должны быть записаны внутри lib/tasks и заканчиваться на .rake, вам не нужно их запрашивать. В вашем конкретном вопросе измените мой код с :foo и :bar на ваши конкретные задачи :rubocop :spec :teaspoon.

Однако похоже, что вы выполняете некоторый цикл BDD или TDD. Проверьте rails Guard , это может помочь вам лучше. Я использую его в своем проекте, и он отлично работает.

0 голосов
/ 09 ноября 2018

rails default выполняет эти задачи для меня на Rails 5.2.1, хотя я нигде не смог найти его документированным.

...