2011-02-09 11 views
0

私は多少大きなthirdpartyライブラリ/ apisに依存しているマルチモジュールプロジェクトを持っています。実際のライブラリで自動化されたjunitテストを実行することはできません。なぜなら、apiは開発環境の管理外のシステムとやり取りするからです。この問題を回避するために、我々はjunitsを実行できるようにinterfaces/apisを嘲笑したクラスを作成しました。私たちは開発のためのIDEとしてEclipseを使用しています.Junitを実行するには、単にクラスパス内でjarファイルを上に移動し、再コンパイルし、junitsを実行してください。テスト固有のjarでソースを再コンパイル

私たちがMavenに移っている今、同様のソリューションを探しています。基本的には、コードをビルドした後、junitテストを実行するためにモックジャーを使ってコードを再構築する必要があります。これは、アプリケーションのすべてのモジュールに渡ります。テストスコープでjarファイルを追加しようとしましたが、これはテストクラスのコンパイルにのみ使用されます。ソースクラスはまだ実際の瓶でコンパイルされています。しかし、モックジャーは実際のジャーのすべてのシグネチャと一致しないので、実行時には失敗します(ジャーのホットスワップは機能しません;すべてのシグネチャを一致させることは大きな仕事になります)。したがって、ソースはjarファイルで再コンパイルする必要があります。

だから、2つのオプションがあります表示されます。 1)は何とかすべてのソースモジュールコードを引き込むとモック瓶を使用してそれを再コンパイルし、テストや 2を実行するスタンドアロンテストモジュールを作成します)各モジュールはでtestjarを作成しますモックジャーと一緒にコンパイルされたインストール可能なjarに加えて、テストフェーズ中に依存モジュールによって使用されます。

お知らせください。上記のいずれかを実行する方法の例は非常に高く評価されます。

答えて

0

thisリンクを確認してください。私はそれがあなたが必要とするものを持っていると思う。 2つのMavenプロファイルを使用してこれを処理できます。 thisによれば、プロファイルごとに異なる依存関係を持つことができます。

関連する問題