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