0

非常に単純な OSGi バンドルを構築する Maven プロジェクトがあります。アクティベーターなし。唯一の仕事は、共有コードを OSGi プロジェクトに提供することです。依存関係がすべてセットアップされ、正しく埋め込まれていることをテストしたいと思います。

そこで、状況に pax-exam を追加しました。

この最後に単体テスト シェルを貼り付けます。プロジェクトでビルドされたバンドルに依存しているバンドル内で実際に @Test メソッドが実行されていますか?

@RunWith(PaxExam.class)
@ExamReactorStrategy(PerClass.class)
public class CommonBundleTest {

    @Configuration
    public Option[] config() {

        return options(
                // this is the current project's result artifact
                mavenBundle("com.basistech.osgi", "rosette-common-java-lib"),
                junitBundles()
        );
    }

    @Test
    public void atest() {

    }
}
4

2 に答える 2

2

テストはバンドル内で実行されていますか: はい Pax Exam は単体テスト自体の TinyBundle を作成します。ただし、config メソッドで宣言されたバンドルに余分な依存関係を追加することはありません。

これらのパッケージが確実にインポートされるようにしたい場合は、TinyBundle のビルド方法を変更できます。

@ProbeBuilder
public TestProbeBuilder probeConfiguration(TestProbeBuilder probe) {
    // makes sure the generated Test-Bundle contains this import!
    probe.setHeader(Constants.IMPORT_PACKAGE, "*,your.extra.package");
    return probe;
}
于 2014-11-15T18:50:50.817 に答える