継続的インテグレーションのススメ Jenkinsでテスト結果を表示

前回のお話でJenkinsとGitHubによる継続的インテグレーションの開発環境の設定を行いました。

GitHubとJenkins連動 自動デプロイ 開発環境設定編

今回は、継続的インテグレーションを行うにあたり実際にJenkinsでテストを実行した際に
「どんなテスト結果を表示してくれるのか?」ということをご紹介したいと思います。

現在FuelPHPを用いて開発を行なっているためここでのテストの実行にはPHPUnitを使用して行っています。

JenkinsとPHPUnitでテスト実行

ちなみに余談ですが, Jenkinsってイギリス人の執事をイメージした名前だそうです。
プロジェクトに優秀な執事がいるような思いが込められてこの名前が付けられたと言われています。

参考:Jenkinsで始める継続的インテグレーション

Jenkinsはイギリス人の執事

では、JenkinsというよりはPHPのUnitテストでどんなレポートを表示してくれるのか?

たくさんあるのですが、大きく5つ紹介します。

  1. テスト結果の表示
  2. コードカバレッジの表示
  3. バグになりそうな箇所や実装上の問題・無駄を検出
  4. 冗長化したコードを自動で検出しコードの最適化
  5. ドキュメントの自動生成

大きくこれら5つについての説明とJenkinsで表示した際の表示内容を見て行きましょう。

テストの結果の表示

テストの結果は、その名の通り成功したテストや失敗したテストの一覧を表示してくれます。

テスト結果の推移

失敗

コードカバレッジの表示

コードカバレッジとは、作成したテストがテスト対象コードのうちどのくらいテストしているかを表している率のことを言います。
コードカバレッジが高いほどテストコードがしっかり書かれていて、品質の良いコードを保つことが出来ています。

コードカバレッジ全体

ちなみにコードカバレッジの表示では、カバレッジ率の表示だけではなく、テストがされている行とされていない行を視覚的に分かりやすく表示することができます。
テストの状況は、テストが実施されたファイル、クラス、行数と細かく表示されます

テストの状況をファイル別に表示

テストがされた行とされていない行
テストがされている行は緑色、されていない行は赤色で塗られています。

テストがされた行とされていない行

バグになりそうな箇所や実装上の問題を検出

3のバグになりそうな箇所や実装上の問題を検出については、独自のルールを取り入れることも出来、反していれば警告を表示するといった設定も行うことができます。下記の例では使われていない変数があるため 「UnusedLocalVariable」 と表示されています。

PMD警告

使っていない変数

独自のルールの詳しい設定などについては次回以降の記事で紹介します。

冗長化したコードを自動で検出しコードの最適化

4の冗長化したコードを自動で検出しコードの最適化については、フォルダ内の各ファイルの重複度合いがグラフで表示されます。
そのため共通化出来るところなどが視覚化されコードの最適化につなげることができます。

ドキュメントの自動生成

5のドキュメントの自動生成については、作成しているクラスのリファレンスを自動で生成してくれるものになります。

検索も可能であり、正しいフォーマットで記述することにより作成したメソッドの説明や引数などの情報をリファレンスとしてまとめてくれます。

自動生成されたPHPDocumenter

このように、PHPUnitで用意されている機能をJenkinsで実行するこによりテストの結果を見やすく表現してくれます。

これらは品質の良いコードを保つきっかけになり、品質の良いサービス作りへの第一歩であると思います。

なんか、これらを見ると早くテストを書きたくなってきませんか(笑?

次回は、これらを表示するための設定について書いて行きたいと思います!!

  1. No Comments

*