2012-02-25 16 views
2

Hudson/Jenkinsビルドサーバーを使用してサーバーアプリケーションを構築し(単にmavenを呼び出します)、それに対して統合テストを実行します。私たちは、この順序でお互いを呼び出す統合テストの構築、展開、および実行のために、ジョブを準備します:3 Hudson/Jenkinsこれらのすべてのジョブ(ビルド、デプロイ、統合テスト)は夜間に実行されます。統合テスト用のJUnit、Maven、Hudson/Jenkinsの使用

インテグレーションテストはJUnitと書かれており、mvn test(これは "テスト" Hudson/Jenkinsジョブによって順番に呼び出されます)によって呼び出されます。サーバーを起動して実行する必要があるため、その「展開」ジョブを実行する必要があります。

意味がありますか?アプリケーションを展開してテストを実行するための特別なサーバーがありますか、それともHudson/Jenkinsが問題ありませんか?

+0

なぜ3つの異なるジョブを使用していますか?どのような種類のサーバーを使用していますか? (どのようなアプリケーションですか?) – khmarbaise

答えて

6

間違いなく、基本的にビルドパイプラインを指しています。アップストリーム/ダウンストリームプロジェクトを視覚化するのに役立つJenkins-pluginがあります(ジェンキンで新しいパイプラインビューを作成します)。

サーバーコンポーネントを展開するためのように、これはあなたが実行しているものの技術/スタックに依存します。例えば、ジェンキンズのビルド後のステップを使ってアプリケーションをテスト環境にデプロイするスクリプトを書くことができます。

別のオプションは、アプリケーションを展開するMavenプラグインを使用することです。あなたは、基本的にはそこに多くのオプションがありますが、ビルド・パイプラインの考え方は多くの意味を作るなど

のプロファイルでの展開のステップを分離し、デプロイ段階でのみ展開の目標を実行することができます。ビルドパイプラインと関連トピックを読むには、Continuous Deploymentをご覧ください。ジェンキンスに関連する詳細については

this videoを見ています。

それは理にかなっていますか? アプリケーションをインストールしてテストを実行する特別なサーバーがあるか、Hudson/Jenkinsが問題ありませんか?

アプリケーションはジェンキンと同じサーバー上で実行できますが、それはアプリケーションによって異なります。特定のサーバー設定に大きく依存している場合は、vmでサーバーを実行する方が良いかもしれませんが、ソース管理の構成です。あなたはPuppetを持っている私の頭の上のこれを自動化するためのツールの多く、ChefVagrant

2

は、サーバーの技術に応じてありますが、あなたはあなたの統合を実行し、単一ハドソンプロジェクトでこのすべてを行うことができますSurefireの代わりにMavenのFailsafe pluginを使用したテスト。彼らが完了した後

これは、あなたが前に統合テストの実行を開始し、展開することができ、およびシャットダウンサーバー。また、統合テストを単体テストから分離することもできます。

Java EEアプリケーションの場合は、Cargoを使用して開始/展開/停止の手順を実行するか、Jetty Maven pluginを含む埋め込みJettyを使用できます。

関連する問題