私のKarafサーバーが正常に起動し、すべての(必要な)バンドルがインストールされアクティブであることを保証するJUnitTestを作成したいと思います。JUnitTest for Karaf Startup
私は、特定のバンドルが指定された状態にあることを保証するヘルパーメソッド "assertBundleState"を呼び出すTestを持っています。テストは次のようになります。
@Test (timeout=30000L)
public void testBundlesStarted() throws Exception {
assertBundleState("bundle.Name", BundleLifecycleState.Active);
... <other bundles in similar way>
}
これは過去に正常に機能しました。タイムアウトには至っていません。
残念ながら、起動に少し時間がかかるバンドルをロードする必要があります。テストが実行されると、バンドルはまだ開始されていません。そしてテストは失敗します。
私はBeforeClassメソッドでスリープ状態で試しましたが、この解決策には本当に満足していません。なぜなら、私は、与えられた睡眠時間が毎回あらゆるマシンで十分であることを保証できないからです。だから私はKarafと対話するためのイベントベースのソリューションを探しています。
@BeforeClass
public static void init() throws Exception {
Thread.sleep(120000L);
}
もっと良い方法でどのように解決できるのでしょうか? ありがとう