私たちの製品の一部が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を起動し、何とかそれらを裂く(私はこれを多分プロセスを殺すことによって行う方法を知らない)スクリプトを作成する必要がありますか?
物はコンテナを使いたくないです。私はちょうどA B Cを起動したい、それらはスタンドアロンのアプリケーションです –
さて、あなたを誤解しました。次に、ここで示唆されているように、おそらくexecまたはantrunプラグインのどちらかを使用したいと考えています:http://stackoverflow.com/questions/175621/starting-external-process-during-integration-testing-in-maven – skuro
起動戦略/アプリケーションをシャットダウンすると、予測可能な場所のファイルにサブプロセスのPIDを格納/読み込む 'sh'スクリプトをいくつか作成します。 – skuro