January 4, 2013

JenkinsとPhingとPHPUnitでFuelPHPのHTMLカバレッジレポートを作成する

2013/01/05 追記:
以下に、まとめ記事を書きました。
FuelPHPとGitLabとJenkinsで継続的インテグレーションする雛形を考えてみた
http://madroom-project.blogspot.jp/2013/01/fuelphpgitlabjenkins.html

--

以下が済んでいる環境で、手順を確認しました。

UbuntuにPHP 5.4.10をインストールする
http://madroom-project.blogspot.jp/2013/01/ubuntu550alpha2.html

UbuntuにPHPUnitをインストールする
http://madroom-project.blogspot.jp/2013/01/ubuntuphpunit.html

UbuntuにXdebugをインストールする
http://madroom-project.blogspot.jp/2013/01/ubuntuxdebug.html

UbuntuにPhingをインストールする
http://madroom-project.blogspot.jp/2013/01/ubuntuphing.html

JenkinsとPhingの連携サンプル
http://madroom-project.blogspot.jp/2013/01/jenkinsphing.html

なので、要点は
* コマンドでPHPUnitによるカバレッジレポートの作成が出来る
* Phingのインストールが完了している
になります。

以下、FuelPHPのHTMLカバレッジレポートを作成する手順です。


(1)
Manage Jenkins > Configure System > Global properties > Environment variables で以下のように入力して、PHPにパスを通します。
name: PATH
value(例): ${PATH}:/usr/local/php/latest/bin/

Manage Jenkins > Configure System > Jenkins URL が正しいか確認します。間違っていると、後で出力するHTMLレポートのリンクがおかしくなります。


(2)
Jenkinsに"HTML Publisher plugin"をインストールします。インストール後、Jobの設定からPost-build ActionsでPublish HTML reportsを選択して、以下を入力します。
HTML directory to archive: phpunit/coverage/html
Index page[s]: index.html
Report title: Coverage


(3)
build.xmlを作成します。(今回は、コマンド直書きしました。)
<?xml version="1.0" encoding="utf-8" ?>
<project name="FuelPHP Project" basedir="." default="all">

    <target name="phpunit">
        <delete dir="phpunit" includeemptydirs="true" />
        <mkdir dir="phpunit" />
        <exec dir="." command="
            phpunit
            -c fuel/app/phpunit.xml
            --coverage-html phpunit/coverage/html
        "/>
    </target>

    <target name="all" depends="phpunit" />

</project>
尚、fuel/app/phpunit.xmlは、以下の内容を想定しています。
https://github.com/mp-php/fuel-myapp/blob/master/phpunit.xml
また、後々、"--log-junit"とかを追加する予定です。(後ほど、別記事で書く予定です。)


(4)
Jobの設定をします。具体的には、以下の「3. Jobの設定」を参考にして下さい。尚、今回の場合、Targetsは"all"となります。
http://madroom-project.blogspot.jp/2013/01/jenkinsphing.html
* "../core"と"../packages"と"../app/vendor"を除外していますが、必要に応じて調整して下さい。


(5)
ビルドを実行後、リロードして、"Coverage"が表示されていれば成功です。


build.xmlのちゃんとした書き方を覚えなくては。

No comments:

Post a Comment