5

私は、Spring ユニット テスト、特にトランザクション ユニット テストに関する少しの議論を開始するために書いています。

現在、さまざまなクラスに約 441 個のテストがあり、次のように注釈が付けられています。

@RunWith(SpringJUnit4ClassRunner.class)
@TransactionConfiguration
@ContextConfiguration(locations={"/context/ServiceTest-context.xml"}, inheritLocations=false)
public class ServiceTests extends AbstractTransactionalJUnit4SpringContextTests {

    @Test
    public void testSomething() {}

    @Test
    public void testSomethingElse() {}
}

各テスト クラスには、独自のテスト コンテキストがあります。

個々のテスト クラスまたは個々のパッケージを実行すると、テストが正常に実行されるという問題に直面しています。

ただし、maven または Hudson 統合などの同様のものを使用して、すべてのテスト (現在は 400 以上) を実行するようにスケールアップしたい場合。

mvn test

ある時点に到達すると、Java GC 制限を超えたエラーが発生し始めます。

これは、メモリ制限を増やしたり、警告をオフにしたりする必要があるというよりも、テスト計画の設計によるものだと感じています。

誰かが自分の経験と、同様の問題を解決した方法を共有できますか?

エグジー

4

1 に答える 1

1

明示的に appCtx.close() を呼び出さない限り、コンテナはそのライフサイクルの間、すべてのコンテキストを保持すると確信しています。

すべてのテストに独自のコンテキストがある特定の理由はありますか? 特別な理由がない限り、そうしないでください。適切なセットアップとティアダウンの方法がある限り、共有できるはずです。同様のテストをグループ化し、それらの共有コンテキストだけを持っている場合でも。もっと情報ください!

于 2011-10-15T01:04:32.940 に答える