2

我们的 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 似乎在一个单独的线程中执行每个测试(尽管我还没有弄清楚为什么)。

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

谢谢!

4

0 回答 0