LoginSignup
303
295

More than 5 years have passed since last update.

PHP開発でCIするならScrutinizer使ってみよう

Last updated at Posted at 2014-08-24

Scrutinizerが凄い!!

ScrutinizerというサービスがPHPの静的解析出来て凄いというスライドを読んで試しに使ってみたら思いの外すごかった。

公式サイトURL
https://scrutinizer-ci.com/
スライドの記事
http://www.slideshare.net/hinakano/scrutinizer-ciphp

オープンソースのリポジトリ(publicリポジトリ?)なら無料で利用出来るようです。

静的解析が優秀!

Scrutinizerでは初期設定の段階で、php-sim、pdepend、php-analyzerツールが有効になっています。

これらツールの他に設定で、

  • PHP Code Sniffer
  • PHP Change Tracking Analyzer
  • PHP CS Fixer
  • PHP Mess Detector
  • Security Advisory Checker

といったツールを利用することも可能です。
これは凄い!

使い方は簡単!

Sucrutinizerのサイトにアクセスして、Githubへのアクセスを承認したら、
自分のリポジトリに.scrutinizer.ymlという名前でファイルを作成したら
あとは利用したい機能や設定を.scrutinizer.ymlファイルに記載するだけです。

また、.scrutinizer.ymlファイルを作成していなくても初期状態からいくつかの解析状態が登録されており、その内容はブラウザ上から設定することも可能です。

scrutinizer-config.png

レポートのUIがリッチ!

静的解析を主目的とするサービスだけあって、解析結果のレポートUIが豊富です。

総合解析結果画面

コードの解析結果は10点満点の点数で評価されます。
この画面からビルドプロセス、カバレッジ、コードの評価点数のバッジURLも取得出来ます。

scrutinizer-top.png

issue画面

問題のあるファイルが一覧で確認出来ます。

scrutinizer-issue.png

ファイルのリンク先はコードの何処にどんな問題があるのかを確認出来ます。

scrutinizer-issue-detail.png

コードの解析結果画面

コードの解析結果を一覧で確認出来ます。

scrutinizer-code.png

リンク先では対象のソースコードがまるまる確認出来ます。
欲を言えばハイライト表示されていて欲しいところですが;;

scrutinizer-code-detail.png

Unitテストは自動実行、ビルドも出来てカバレッジも取れる!

Scrutinizerでは、リポジトリにPHPUnitphpspeccode ceptionbehatを利用出来る状態になっていれば、それらを自動で実行してくれます。

もし、PHPUnitの設定の中にカバレッジを取得する設定が入っていればカバレッジも取得してバッジを生成してくれます。
coverollsのようなサービスを別途利用する必要はありません。

もし、独自のビルドプロセスが必要な場合は、.scrutinizer.ymlというファイル、または設定画面上で以下のような記述を加えることでビルドプロセスを加えることが可能です。

.scrutinizer.yml
build:
  # 依存モジュールのインストール
  dependencies:
    before:
      - pecl install ssh-beta
  # デプロイ
  deployment:
    -
      branch: master
      commands:
        - cd deploy && cap deploy

カバレッジについても専用のUIが用意されており、
Coverrollasのようなサービスを別途利用する必要もありません。
欲しいものはほぼScrutinizerのサービス内で揃ってしまいます。

コードの改善案を自動で生成してpull requestしてくれる!

コードの問題がある箇所の修正パッチを自動で生成して、
pull requestとして開発ブランチに取り込む事が出来ます。

scrutinizer-patche.png

利用する時の注意

Scrutinizerは開発が活発なサービスです。
今回記載した内容は直ぐに変更される可能性があります。
(実際、UnitTestの自動実行はつい先日追加されたばかりの機能です。)

機能が劣化していくことはないと思いますが、公式サイトのドキュメントは常にチェックしておいたほうがいいでしょう。

303
295
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
303
295