はじめに
こんにちは、プログラミングを始めて約3年のエンジニアのkeitaMaxです。
前回の記事
今回は前回作成したPHPUnitをGitHubActionsでGitHubにPull Requestを出した時に、テストできるようにしようと思います。
GitHubActionsのymlファイルを作成
まずはGitHubActionsを作成します。
この記事を参考に作成しました。
.github/workflows
フォルダの中にphpunit.yml
を作成します。
name: phpunit
on: [pull_request]
jobs:
build:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./src
steps:
- uses: actions/checkout@v2
- name: docker-compose up
run: |
# docker-compose build
docker-compose up -d
- name: composer install
run: |
docker compose exec app composer install
- name: Laravel Settings
run: |
docker-compose exec -T app cp .env.example .env
- name: phpunit
run: |
docker compose exec app php artisan test
GitにPushしてGitHubで実行する
これをGitHubにPushすると以下のように実行されます。
そして処理が終わると、下のように全てにチェックがつきます。
失敗させてみる
ちゃんと動いているかを確認するためにわざとPHPUnitのテストを失敗させてみます。
$response->assertStatus(200);
このようなテストをもともと作成していたので、このコードを以下のように失敗するようにします。
$response->assertStatus(404);
これでPushすると、以下のように失敗しているので、正しくテストが実行できていることが確認できました。
実装した時に困ってたこと
GitHubでPHPUnitを動かすのに、.env
を作成しなくてはいけないことを忘れていて、PHPUnitを動かした時に困りました。
以下のようにGitHubActionsで.env
を作成する処理を書いて解決しました。
- name: Laravel Settings
run: |
docker-compose exec -T app cp .env.example .env
以下の記事を参考にしました。
https://qiita.com/ucan-lab/items/237d2058eb46ab657ae3
おわりに
GitHubActionsでDockerを立ててコマンドを実行するのが初めてだったので色々勉強になりました。
次回はPHPUnitでできることについて調べてみようと思います。
この記事での質問や、間違っている、もっといい方法があるといったご意見などありましたらご指摘していただけると幸いです。
最後まで読んでいただきありがとうございました!
参考文献