Rails расширяет `rake test` для включения пользовательского поведения
У меня есть куча файлов в test/policies
и я попытался улучшить rake test
вот так:
# lib/tasks/test.rake
namespace :test do
desc "Test Pundit policies"
Rake::TestTask.new(:policies) do |t|
t.libs << 'test'
t.pattern = 'test/policies/*_test.rb'
end
end
Rake::Task["test"].enhance do
Rake::Task["test:policies"].invoke
end
Это отлично работает, если я бегу bin/rake test:all
но bin/rake test
сейчас только проходит тестирование политик, и ни один из моих других.
Кто-нибудь может посоветовать, что я здесь делаю не так? Если не понятно, хочу rake test
чтобы выполнить все мои тесты, как раньше.
ОБНОВИТЬ
На самом деле, сейчас это работает, но я заметил, что мои функциональные, модульные и интеграционные тесты выполняются сейчас, но только если все тесты политики пройдены. Если какой-либо из тестов политики не пройден, остальная часть моего набора тестов не будет работать.
И мне не нравится вывод, обратите внимание, как есть два блока тестового вывода ниже:
[vagrant@vagrant-centos-6-4 vagrant]$ bin/rake test
Run options: --seed 54880
# Running:
.........................
Finished in 0.584530s, 42.7694 runs/s, 56.4556 assertions/s.
25 runs, 33 assertions, 0 failures, 0 errors, 0 skips
Run options: --seed 19900
# Running:
.........................................................
Finished in 4.132299s, 51.0612 runs/s, 128.9839 assertions/s.
Я бы предпочел, чтобы выходные данные тестов политики были объединены в тот же блок вывода, что и другие мои тесты. Любые идеи, или это так хорошо, как это получится?
1 ответ
Кто-то задал тот же вопрос, и я ответил на него. Решение в моем случае состояло в том, чтобы изменить мой код с:
Rake::TestTask.new(:policies) do |t|
чтобы:
Rails::TestTask.new(:policies) do |t|
Это просто работает, и исправляет все проблемы, которые у меня были.