Laravel5.4 + TravisCI + Slackで自動テストを行う
概要
Laravel5.4で作ったアプリケーションをTravisCIで自動テストし、Slackへ通知を行う。
TravisCI
- 継続的インテグレーションサービス。
- GithubのリポジトリへのPushに対して、自動でテストやビルドを実行してくれる。
- publicリポジトリは無料、privateリポジトリは有料です。
- サーバー不要!GithubアカウントさえあればOK!
TravisCI登録
-
TravisCIから、Signupをクリック。
- Githubアカウントと連携する。
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で取得したトークンを記述する}
通知用トークンの取得
- 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で取得したトークンを記述する}
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=
DB_DATABASE={データベース名}
DB_USERNAME=root
DB_PASSWORD=
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のテスト結果も一目瞭然です!
- 終わったらSlackに通知が来る!
- Github上のPRにもTravisCIの結果が連携されるので、PRのテスト結果も一目瞭然です!
Author And Source
この問題について(Laravel5.4 + TravisCI + Slackで自動テストを行う), 我々は、より多くの情報をここで見つけました https://qiita.com/naoki0531/items/aa4c74448536965355d6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .