1

Apache Zookeeper サーバーと通信する必要がある一連の単体テストがあります。明らかに、サーバー接続をモックするためのライブラリ (または自分自身をロールバックする簡単な方法) があれば最適ですが、現時点では何も存在しないことがわかります。手で試してみます。

したがって、これまでの解決策は、ローカルでダミー サーバーを立ち上げてテストを実行し、最後に破棄するというものでした。この種の機能は機能しますが、私が知る限り、Surefire にテスト実行ごとに 1 回何かを行うように指示する簡単な方法はありませ@BeforeClass@AfterClass

Zookeeper の初期化プロセスにより、数ミリ秒のテスト実行がクラスごとに数秒になり、プロジェクト全体では数分になります。サーバーを立ち上げ、各テストを実行してから破棄するようにテストをセットアップできれば、少なくとも 1 桁は高速化されると思います。

簡単な修正はありますか?私はこれについて間違った方法で進んでいますか?既存のモック飼育係ライブラリ、または自分で作成する簡単な方法がある場合、それも優れたソリューションです。

4

3 に答える 3

3

統合テストのように聞こえます。確実ではなく「フェイルセーフ」を検討し、統合テストのセットアップとティアダウンのために追加のライフサイクル フェーズでコストのかかる作業を行います。

于 2011-09-14T19:51:54.210 に答える
1

TestNGの使用がオプションである場合は、@BeforeSuiteを使用できます。

于 2011-09-15T17:36:30.280 に答える
0

Spring のAbstractSingleSpringContextTestsクラスを確認することをお勧めします。このクラスは、すべてのサブクラスの Spring コンテキストをロードし、メソッドsetDirty()が呼び出された場合にのみ再ロードします。

まさにあなたが望むものではありませんが、パターンをコピーして、それを使用して模擬の飼育係サーバーを起動できると確信しています。

于 2011-09-14T19:50:48.373 に答える