我正在为我的sidekiq工作人员编写测试,我希望它们在我在终端中键入"rake"时运行。我有这项工作 - 我将以下内容添加到我的 Rakefile:
namespace :test do
Rake::TestTask.new(:workers) do |t|
t.libs << "test"
t.pattern = 'test/workers/**/*_test.rb'
end
end
Rake::Task[:test].enhance ["test:workers"]
当我运行 rake 时,我会得到这样的东西作为我的输出:
Run options: --seed 51172
# Running tests:
SS
Finished tests in 0.005594s, 357.5259 tests/s, 0.0000 assertions/s.
2 tests, 0 assertions, 0 failures, 0 errors, 2 skips
Run options: --seed 17561
# Running tests:
S............................................SSSS..SSSSS......
Finished tests in 2.037526s, 30.4291 tests/s, 45.6436 assertions/s.
62 tests, 93 assertions, 0 failures, 0 errors, 10 skips
S 字符是跳过的 - 我还没有完成所有测试。所以我的问题基本上是 - 有没有办法在增强后合并两组测试?我应该做一些不同于增强的事情吗?
如果我做了任何公然错误的事情,请告诉我,并感谢您阅读本文。以防万一:导轨 4 带 Ruby 2.0
试试这个,更改以下内容:
Rake::TestTask.new(:workers) do |t|
对此:
Rails::TestTask.new(:workers) do |t|
这是一个很小的变化,但为我解决了问题。这意味着您的整个测试套件将使用合并的输出运行。
有
一个简单的解决方法:
bundle exec rake test:all
如果你想看看Rails任务是如何创建的,请看这里