私は一連のレガシーユニットテストを行っていますが、そのほとんどはSpring AbstractTransactionalJUnit4SpringContextTests
テストですが、一部は独自のトランザクションを管理しています。残念ながら、これは、テストデータセットを変更するときに完全に無関係なテストを失敗させる副作用をもたらしたと思われます。つまり、失敗したテストはそれ自身で(同じ初期データセットで)実行すると動作します。完全な一連のテストの一部。Junitテストの副作用を自動的に判断する
通常、テストは通常のMavenビルド中にMavenのsurefireプラグインを使用して実行されます。
私が探しているのは、実行されたテストの量と順序を並べ替えて原因を突き止める自動化された方法です。素朴ではあるがかなり高価なアプローチは、すべてのテストのパワーセットを取り、すべての可能な組み合わせを実行します。より最適化されたアプローチでは、既存のテスト実行順序(ほとんどがランダムですが安定しています)を使用して、すべての潜在的な順序付きサブセットをテストします。私は、このプロセスの実行時間が長くなる可能性があることを認識しています。
これをそのまま実行できるツール/ Mavenプラグインはありますか?
あなたの質問に答えることはできませんが、Spring管理のトランザクションとロールバック(あなたの状況では失敗します)に頼る代わりに、各テストの前にデータベース全体を単純に再作成することを検討してください。私の[記事](http://nurkiewicz.blogspot.com/2011/11/spring-pitfalls-transactional-tests.html)をご覧ください。 –
Tomasz Nurkiewicz:それは私が最初から始めるときにやることです。残念ながら、すべての必要なデータを読み込むには20秒かかりますが、このアプローチは除外されています(単体テストはあまりデータに頼るべきではないことがわかりますが、従来のコードで作業する場合、 –