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 は、各テストを個別のスレッドで実行しているようです (理由はまだわかりませんが)。
この動作を回避する方法はありますか? これがないと「スタックが深すぎる」というエラーが発生するため、各ディレクトリを順番に実行する必要があります。
ありがとう!