以前の記事でCIツールであるJenkinsとJavaのテストツールであるParasoft Jtest、Parasoft DTPを利用したCI環境を紹介しました。今回は、以前紹介したCI環境をJenkinsのフリースタイルジョブを利用して構築する方法を紹介します。
ゴール
ソースコードのコミットによりビルドとJtestによる静的解析が自動実行され、結果をDTPから確認できる環境を構築します。対象のプロジェクトはGitで管理されているMavenのJavaプロジェクトです。
前提
- Jenkinsがインストール済みであること
- JtestとDTPがインストールかつセットアップ済みであること
手順
- フリースタイルジョブの作成
Jenkinsで作業させる単位をジョブといいます。ジョブにはたくさんの種類がありますが今回はフリースタイルジョブを作成します。Jenkinsにログインして [新規ジョブ作成] を選択し、ジョブ名を入力、[フリースタイル・プロジェクトのビルド] をクリックしてジョブを作成します - Gitリポジトリの設定
ジョブの設定画面の「ソースコード管理」に対象プロジェクトを管理しているGitリポジトリの情報を設定します。[リポジトリURL]、[認証情報]、[ビルドするブランチ] を設定します。 - 実行タイミングの設定
ジョブの設定画面の「ビルド・トリガ」にジョブを実行するタイミングを設定します。今回は [SCMをポーリング] を設定して指定した時間にJenkinsがリポジトリにポーリングをおこない、コミットがあればジョブを自動実行するようにします。ポーリングの時間指定の方法はcronの構文に従います。例えば以下であれば毎日0時頃にポーリングが実行されます。 - Jtestの設定ファイルを作成
CIサーバーのどこかにJtestの設定ファイル “localsettings.properties” を作成します。設定ファイルは対象プロジェクト固有の設定を記載するため、プロジェクト毎に作成する必要があります。 - ビルドとJtestの実行設定
ジョブの設定画面の「ビルド」にビルドとJtestの実行を設定します。ビルド手順に [Windowsバッチコマンドの実行] を追加してビルドコマンドとJtestの実行コマンドを記述します(Linuxの場合は代わりに[シェルの実行]を追加)。Jtestの実行コマンドでは、-Djtest.settingsオプションを利用して事前に作成しておいた設定ファイルを渡しています。今回はMavenからJtestを実行しましたが、他にもAntやGradleからも実行できます。 - ジョブの実行
Gitリポジトリにソースコードの変更をコミットすると、ポーリングで指定した時間にジョブが自動で実行されます。ジョブ画面の [ビルド実行] をクリックすると手動で実行することもできます。 - 結果の確認
ジョブ画面の「ビルドの履歴」からジョブが成功したか否かを確認できます。緑の場合は成功、赤の場合は失敗を示します。ビルド番号を選択し、[コンソール出力] をクリックするとログを確認できます。
Jtestの解析結果はDTPへも登録するように設定をおこなっているので、DTPのダッシュボードから結果を確認することもできます。
まとめ
今回はJenkinsのフリースタイルジョブとJtest、DTPを利用したCI環境の構築方法を紹介しました。CI環境には開発工数の削減、アプリケーションの品質向上、運用の標準化など様々なメリットがあります。簡単な手順でビルドとテストを自動化する環境を構築することができますので、導入を検討してみてはいかがでしょうか。
Parasoft Jtestについて
Java対応静的解析・単体テストツール Parasoft Jtest
Jtestは、テスト工数の大幅削減とセキュアで高品質なJavaシステムの開発を強力にサポートするJava対応テストツールです。1,000個以上のコーディング規約をもとにソースコードを静的に解析し、プログラムの問題点や処理フローに潜む検出困難なエラーを検出します。さらに、JUnitを用いた単体テストについて、作成、実行、テストカバレッジ分析、テスト資産の管理といった単体テストに係る作業をサポートし、単体テストの効率化を促進します。