2
3

【Laravel】GitHubのPush時にPHPUnitでテストする

Last updated at Posted at 2024-03-12

はじめに

こんにちは、プログラミングを始めて約3年のエンジニアのkeitaMaxです。

前回の記事

今回は前回作成したPHPUnitをGitHubActionsでGitHubにPull Requestを出した時に、テストできるようにしようと思います。

GitHubActionsのymlファイルを作成

まずはGitHubActionsを作成します。

この記事を参考に作成しました。

.github/workflowsフォルダの中にphpunit.ymlを作成します。

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すると以下のように実行されます。

スクリーンショット 2024-03-12 21.15.20.png

そして処理が終わると、下のように全てにチェックがつきます。

スクリーンショット 2024-03-12 21.56.00.png

失敗させてみる

ちゃんと動いているかを確認するためにわざとPHPUnitのテストを失敗させてみます。

$response->assertStatus(200);

このようなテストをもともと作成していたので、このコードを以下のように失敗するようにします。

$response->assertStatus(404);

これでPushすると、以下のように失敗しているので、正しくテストが実行できていることが確認できました。

スクリーンショット 2024-03-12 22.18.41.png

実装した時に困ってたこと

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でできることについて調べてみようと思います。

この記事での質問や、間違っている、もっといい方法があるといったご意見などありましたらご指摘していただけると幸いです。

最後まで読んでいただきありがとうございました!

参考文献

次の記事

2
3
1

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