【问题标题】:Rails extending `rake test` to incorporate custom behaviourRails 扩展“rake test”以包含自定义行为
【发布时间】:2014-09-29 16:21:12
【问题描述】:

我在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.

如果策略测试输出与我的其他测试的输出合并到相同的输出块中,我会更喜欢。有什么想法吗,或者这是否达到预期效果?

【问题讨论】:

    标签: ruby-on-rails ruby rake rake-test


    【解决方案1】:

    其他人问the same question,我为他们回答。我的解决方案是更改我的代码:

    Rake::TestTask.new(:policies) do |t|
    

    到:

    Rails::TestTask.new(:policies) do |t|
    

    它可以正常工作,并解决了我遇到的所有问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-16
      • 1970-01-01
      • 2020-08-29
      • 2011-12-31
      • 2018-05-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多