我在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.
我更喜欢将策略测试输出合并到与其他测试相同的输出块中。任何想法,或者它是否会得到它的好处?
答案 0 :(得分:2)
有人问the same question,我为他们回答了这个问题。我的解决方案是改变我的代码:
Rake::TestTask.new(:policies) do |t|
为:
Rails::TestTask.new(:policies) do |t|
它只是有效,并修复了我遇到的所有问题。