我们的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似乎在一个单独的线程中执行每个测试(虽然我还没弄清楚为什么)。
有没有办法避免这种行为?我希望每个目录按顺序运行,因为没有这个我遇到“堆栈太深”的错误。
谢谢!