Equinox/OSGi、Tycho を使用して Eclipse RCP プラットフォームで開発を行うプロジェクトに参加しました。
OSGi のクラスパス/クラスローディング メカニズム、tycho、equinox の仕組みなどに徐々に慣れてきました。
テスト バンドル (ターゲット バンドルのフラグメント) に集めてモッキングを使用して単純な単体テストを作成していますが、ClassNotFound エラー、ソース コードの添付に関する問題が発生しています。テストを rcp プラグイン テストとして実行する、または統合テスト スコープで tycho を使用するなどの推奨事項を見てきました。ただし、これらのアプローチはすべて、テストの実行が非常に遅く、非生産的であることがわかりました。
私が理解している限り、この環境 (Tycho、Eclipse RCP、またはその両方) の依存関係解決メカニズムは、私の想定とは少し異なります。テストを満たすために新しい実装をホスト バンドルに追加すると、ホスト バンドルに対して mvn install (tycho が引き継ぐ) を実行しない限り、すべての新しい実装がテスト バンドルによって取得されません。依存関係が不足しているため、プロジェクトの完全なインストールが必要になる場合があります。私が試した別の方法は、JUnit プラグイン テストとしてテストを実行することでした。そのメソッドも、tycho の依存関係の解決のために非常に遅く、すべてのバンドルをロードしています。
単体テストを実行するための最良のアプローチは何ですか? (単体テストと言うときは、相互作用がモックされ、ミリ秒単位でテストが実行される単体テストの真の定義を意味します)。