LoginSignup
3
2

More than 5 years have passed since last update.

Laravel5.4 + TravisCI + Slackで自動テストを行う

Last updated at Posted at 2017-09-20

概要

Laravel5.4で作ったアプリケーションをTravisCIで自動テストし、Slackへ通知を行う。

TravisCI

  • 継続的インテグレーションサービス。
  • GithubのリポジトリへのPushに対して、自動でテストやビルドを実行してくれる。
  • publicリポジトリは無料、privateリポジトリは有料です。
  • サーバー不要!GithubアカウントさえあればOK!

TravisCI登録

  • TravisCIから、Signupをクリック。
  • Githubアカウントと連携する。 スクリーンショット 2017-09-20 20.57.09.png

TravisCI連携

  • organizationに所属している場合は登録時に表示される、そこのリポジトリでCIしたい場合は連携しておく。
  • しばらく待つとリポジトリ一覧が表示されるので、CIしたいリポジトリを選択!
  • TravisCI側の設定は完了!

Slack

通知用トークンの取得

  • SlackのAppsからTravisCIをインストール。
  • Settingで通知チャンネルを選択し、トークンを取得する。

Laravel5.4

  • 前提として、migrationとseederを利用してDBデータを作成しており、そのデータでテストを行うとします。
  • リポジトリルートでphpunitを実行するとテスト動作する状態とします。

テスト実行用の.env.testingファイルをリポジトリルートに作成

  • TravisCI上でDBに接続するので、DB情報を記述しておく。
  • USERNAMEはrootでパスワードは空、ポートもなしでいけます。
.env.testing
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=
DB_DATABASE={データベース名}
DB_USERNAME=root
DB_PASSWORD=

TravisCI用設定ファイルを作成する

  • リポジトリのルートにTravisCI用のファイルを作成する。
.travis.yml
language: php
php:
 - 7.1
services:
 - mysql
before_script:
 - mysql -uroot -e "create database {データベース名}"
script:
 - cp .env.testing .env
 - composer install
 - php artisan migrate --seed
 - phpunit
notifications:
 slack: {Slackで取得したトークンを記述する}

language : プログラム言語、そのまま。
php : 言語で設定したphpのバージョンを指定、今回は7.1を利用しています。
services : DBなど利用するミドルウェアを記述する。
before_script : scriptの前に実行される処理、今回はDBを利用するのでテーブルを作成しておきます。
script : ここにテストなど自動実行するコマンドを記述する。migration実行時に.envファイルがないとDB情報を取得できないので、.envをtestingからコピーして作成しておきます。

動作させてみる。

  • あとはpushに反応して自動でymlの内容を実行してくれるので、適当にpushしてみる!

結果

  • 終わったらSlackに通知が来る!
  • Github上のPRにもTravisCIの結果が連携されるので、PRのテスト結果も一目瞭然です!

スクリーンショット 2017-09-20 21.20.03.png

3
2
0

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
3
2