CakePHP アプリケーションのユニットテストをGitLab CI で実行する

CakePHP アプリケーションのユニットテストをGitLab CI で実行する

今週末開催されるPHPカンファレンス福岡2017に参加するため、金曜日から現地入りする予定のtanakaです。 参加される方がいらっしゃいましたら仲良くしてください。

昨日(2017/06/07)開催されたGitLab Meetup Tokyo #3: GitLab 9.xリリース記念 - connpassに参加しましたが、GitLabを活用して業務を効率化するために勉強してます。 バシャログでも積極的に活用法を共有していきます。 今回は、CakePHP アプリケーションのユニットテストをGitLabで実行する方法を調査したので、ご紹介します。

前提

プロジェクトの準備

リポジトリを作成したら、Settings > CI/CD Pipelines にて、docker runner の「Enable for this project」ボタンをクリックして有効化します。

20170608-tanaka-gitlab01.png

CakePHPアプリの新規作成

以下のようにCakePHPアプリを作って、リモートリポジトリにpushします。

$ cd path/to/projects
$ composer create-project --prefer-dist cakephp/app cakeapp
$ cd cakeapp
$ git init
$ git add -A
$ git commit -m "create CakePHP app"
$ git remote add origin ssh://git@gitlab.example.com/ktanaka/cakeapp-ci-sample.git
$ git push origin master

ユニットテストできるようにする

PHPUnit,cakephp-codesniffer を追加します。

$ composer require --dev phpunit/phpunit:"^5.7|^6.0"
$ composer require --dev cakephp/cakephp-codesniffer:"^3.0"
$ git add composer.json composer.lock
$ git commit -m "Require PHPUnit, cakephp/cakephp-codesniffer(For Dev)"

composer run-script check を実行すると、ユニットテストとphpcs によるコーディングスタイルチェックが実行されます

$ composer run-script check
> phpunit --colors=always
PHPUnit 5.7.20 by Sebastian Bergmann and contributors.

......                                                              6 / 6 (100%)

Time: 482 ms, Memory: 17.25MB

OK (6 tests, 34 assertions)
> phpcs --colors -p --standard=vendor/cakephp/cakephp-codesniffer/CakePHP ./src ./tests
...........

Time: 590ms; Memory: 11Mb

GitLab CI でテスト実行する

これをGitLab CI で実行できるようにします。 以下の .gitlab-ci.yml ファイルをコミットします。

before_script:
  - php -v
  - apt-get update -yqq > /dev/null
  - apt-get install libmcrypt-dev libicu-dev zlib1g-dev -yqq > /dev/null
  - docker-php-ext-install mcrypt intl zip opcache > /dev/null
  - curl -sS https://getcomposer.org/installer | php > /dev/null
  - php composer.phar install --dev --no-interaction

cache:
  paths:
    - ~/.composer/
    - vendor/

check:php7.1:
  image: php:7.1
  script:
    - php composer.phar run-script check

コミット、プッシュします。

$ git add .gitlab-ci.yml
$ git commit -m "add CI Config"
$ git push

Pipelines にアクセスすると、テスト結果を以下のように閲覧できます。

20170608-tanaka-gitlab02.png 20170608-tanaka-gitlab03.png

コンソールカラーも反映してくれて、イイ感じですね。

まとめ

新規に作成したCakePHP プロジェクトをGitLab CI でテストする手順を説明しました。 データベースを使ったテストについては別途紹介したいと思います。

  • このエントリーをはてなブックマークに追加

この記事を読んだ人にオススメ