2011-03-05 14 views
1

私たちの製品の一部がJVMに埋め込まれていないが、統合テスト中に参加しなければならないシナリオについて議論したいと思います。埋め込み可能でないMavenを使った統合テスト環境

シナリオ:私はMavenを使用しています。私のアプリは以下のツールを使用しています
A)アクティブMQ
B)カッサンドラDB
C)CXF WebService

ソリューション1から統合テスト:すべてのA BとCは埋め込み可能です。だから私はJVMでA B Cをモックアップして使用することができます。これは明らかに機能しますが、これは私が議論したいことではありません。

解決策2:統合テストに関連するMavenフェーズを使用して、enviro全体を設定します。手順:
1a)プリアセンブルテストフェーズ(自家製カーゴのようなもの)または 1b)プリインテグレーションテストフェーズのダウンロードでこれらの製品をアンパックして準備できるように、パッケージA、B、CバイナリWebからのこれらのバイナリやアンパックなど(もう一度、貨物プロジェクトをエミュレートする) 2)統合後のテストですべてをシャットダウンします。

Mavenを使用してソリューション2を実行するにはどうすればよいですか?ダウンロードやアンパックに役立つプラグインはありますか?(同じマシンで再度ダウンロードしないことを覚えていますか?)どのようにABCを立ち上げてシャットダウンするかは、彼らの所在地がわかっているか?どのMavenプラグインですか?私はちょうどantrunのプラグインを使用し、コマンドラインからABCを起動し、何とかそれらを裂く(私はこれを多分プロセスを殺すことによって行う方法を知らない)スクリプトを作成する必要がありますか?

答えて

1

貨物チームでは、maven archetypesが役に立ちます。 Separate Functional Test Module Archetypeで特に見てみましょう、統合専用のモジュールを含んでいるあなたが記述まさにん(機能)テスト:

  • pre-integration-tests
  • アーティファクトでアプリのコンテナにアーティファクトを展開する貨物を使用することができますコンテナを切断するために使用され、あなたの反応器又は
  • 統合テストが
  • 後の統合テスト・フェーズを実行している
  • 通常の依存関係の一部のいずれかになり

これが役に立ちます。

+0

物はコンテナを使いたくないです。私はちょうどA B Cを起動したい、それらはスタンドアロンのアプリケーションです –

+0

さて、あなたを誤解しました。次に、ここで示唆されているように、おそらくexecまたはantrunプラグインのどちらかを使用したいと考えています:http://stackoverflow.com/questions/175621/starting-external-process-during-integration-testing-in-maven – skuro

+0

起動戦略/アプリケーションをシャットダウンすると、予測可能な場所のファイルにサブプロセスのPIDを格納/読み込む 'sh'スクリプトをいくつか作成します。 – skuro

関連する問題