使Rake :: TestTask运行“单线程”

时间:2013-06-23 02:08:48

标签: ruby rake minitest

我们的MiniTest :: Spec测试套件中有一些测试,它们在每个测试目录单独运行时传递,但在整个套件运行时失败。

我没有花费数小时试图找出失败的原因,而是认为在自己的TestTask实例中运行每个测试目录会更容易,如下所示:

Dir.new('spec').each do |f|
  next if f.start_with? '.'
  if File.directory? File.join('spec', f)
    Rake::TestTask.new('test') do |t|
      t.libs << "app" << "spec"
      t.test_files = FileList["spec/#{f}/*_spec.rb"]
      t.verbose = true
    end
  end
end

然而,这会导致每个目录中的测试以“并行”方式运行。 TestTask.new似乎在一个单独的线程中执行每个测试(虽然我还没弄清楚为什么)。

有没有办法避免这种行为?我希望每个目录按顺序运行,因为没有这个我遇到“堆栈太深”的错误。

谢谢!

0 个答案:

没有答案