January 27, 2013

FuelPHPのユニットテストをTravis CIで実行してみる

無料で使えるCIサービスのTravis CIでFuelPHPのユニットテストを実行してみました。
https://travis-ci.org/

以下、手順をメモしておきます。


GitHubで https://github.com/fuel/fuel をforkしておきます。

TravisにGitHubアカウントでログインします。

https://travis-ci.org/profile の"Repositories"タブから"Sync now"します。
尚、"Profile"タブから日本語表示も選べます。

forkしたレポジトリを"ON"にします。

テスト用のブランチを作成してpushしてみます。
$ git checkout -b travis-test
$ git push origin travis-test
Total 0 (delta 0), reused 0 (delta 0)
To https://mp-php@github.com/mp-php/fuel.git
 * [new branch]      travis-test -> travis-test
まだ、Travis側では何も起こりません。

Travisのドキュメント http://about.travis-ci.org/docs/ を参考にして、「.travis.yml」をルート直下に作成してpushしてみます。
$ vim .travis.yml
-- .travis.yml --
language: php

php:
  - 5.3
  - 5.4

script: phpunit -c fuel/core/phpunit.xml
$ git add .travis.yml
$ git commit -m "Added .travis.yml"
[travis-test 8b45691] Added .travis.yml
 1 file changed, 8 insertions(+)
 create mode 100644 .travis.yml
$ git push
Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 332 bytes, done.
Total 3 (delta 1), reused 0 (delta 0)
To https://mp-php@github.com/mp-php/fuel.git
   982c3ed..8b45691  travis-test -> travis-test 
Travis側で、PHP5.3とPHP5.4で、それぞれユニットテストが実行されたようです。

以下、PHP5.3でのログの一部です。
$ phpunit -c fuel/core/phpunit.xml
PHPUnit 3.7.10 by Sebastian Bergmann.

Configuration read from /home/travis/build/mp-php/fuel/fuel/core/phpunit.xml

...............................................................  63 / 330 ( 19%)
............................................................... 126 / 330 ( 38%)
............................................................... 189 / 330 ( 57%)
............................................................... 252 / 330 ( 76%)
............................................................... 315 / 330 ( 95%)
...............

Time: 6 seconds, Memory: 17.50Mb

OK (330 tests, 350 assertions)

Done. Build script exited with 0
ビックリするくらい簡単でした。

尚、.travis.ymlの"script"を以下のようにすれば、ログにカバレッジが出力されました。
script: phpunit --coverage-text -c fuel/app/phpunit.xml 
TravisのドキュメントにはDB関係の記載も有るので、細かな使い方を確認していこうと思います。

ちなみに https://github.com/fuelphp/fuelphp (FuelPHP 2)にも、.travis.ymlが有りました。

No comments:

Post a Comment