2

OSGI テスト フレームワーク - 観察事項。

OSGIを利用したシステムを書いている最中です。ただし、一般的なテスト フレームワーク (Spring-OSGI、PaxExam) はすべて、最も単純なテストでも多くのアーティファクトを必要とします。

ウィッシュリスト / 目標

理想的には、TinyBundle を使用してバンドルを組み立て、フレームワークに渡す単一のテストが必要です。その後、フレームワークは、コンテナーの開始、デプロイ、各テストの実行、結果を表示するための UI の更新などの重労働を行います。

表面的には、PAX-EXAM がこれを満たしているように見えますが、Eclipse 内で解決できなかった追加の要件があります。私の問題は次のとおりです。

  • 各バンドルには個別のプロジェクトが必要です。
  • 各プロジェクトは、$project/meta-inf/ で manifest.mf を取得します。

理想的には、すべてのマニフェストと「内部」クラスを、それぞれのプロジェクトに散らばらせるのではなく、テストの個別のサブパッケージにバンドルしたいと考えています。

プロビジョニングされたバンドルの内容が同一であっても、テストを実行すると、すべてを 1 つのプロジェクトにパッケージ化しても機能しないことがわかりました。ただし、すべてを個別のプロジェクトに分割すると、機能します。

メイヴン

これは、ビルドが必要になるより複雑なシステムをレポにデプロイすることを意味するため、maven は避けたいと考えています。これは、変更されたクラスを自動的に検出し、適切なテストを実行する Infinitest の使用と競合します。

Eclipse プロジェクト プラグインの起動構成。

このアプローチでは、junit テストを実行する前に、展開するバンドルを選択する必要があります。もちろん、これは、バンドルごとに 1 対 1 のマッピングを持つ個別のプロジェクトがある場合にのみ機能します。繰り返しますが、これは、すべてのテスト依存バンドルを 1 つのプロジェクトに統合しようとする私の試みに反します。

どうやって、それはできますか???

  • どうすればこれを達成できますか?
  • これは実際に可能ですか?
  • 最も簡単な代替手段は何ですか?
4

1 に答える 1

1

Pax Exam も活用する 1 つの代替手段は、OSGi テスト フレームワーク (OSGi フレームワークの実装をテストする) で行ったことです。それがどのように機能するかの説明全体を複製するのではなく、ここで見つけることができます:

http://opensource.luminis.net/wiki/display/OSGITEST/OSGi+testing+framework

Maven は使用しません。新しいテストの作成については、次のように説明されています。

http://opensource.luminis.net/wiki/display/OSGITEST/Writing+a+framework+test

たぶん、いくつかの解決策はあなたにインスピレーションを与えることができます. 全体として、OSGi 用のテスト フレームワークは (OSGi 以外の場合と同様に) 数多くありますが、これまでのところ、「残りを時代遅れにする」ものは 1 つしかありませんでした。

于 2010-08-08T10:17:41.287 に答える