LoginSignup
3
2

More than 3 years have passed since last update.

VSCodeでLaravel Sailで作成したプロジェクトのテストが実行できるようにする

Posted at

Laravel Sailで作成したプロジェクトだと./vendor/bin/sail testコマンドでテスト実行できますが、テストコードの実装中はメソッド単位でテストしたいので、VSCodeの拡張機能を利用してみました。

前提

こちらの手順で手元にLaravel Sailで作成したプロジェクトがクローンされており、Dockerコンテナが実行されている環境となります。

今回の手順はGitHubリポジトリでも確認できます。

VCodeに拡張機能をインストールする

こちらの拡張機能が利用できます。

PHPUnit - Visual Studio Marketplace
https://marketplace.visualstudio.com/items?itemName=emallin.phpunit

プロジェクト直下に.vscode/settings.jsonファイルを作成することでワークスペースごとにVSCodeの設定が切り替えできるので、そのファイルに拡張機能の設定を追加します。

.vscode/settings.json
{
    "phpunit.command": "vendor/bin/sail exec laravel.test",
    "phpunit.phpunit": "vendor/bin/phpunit"
}

PHPUnit - Visual Studio Marketplace
https://marketplace.visualstudio.com/items?itemName=emallin.phpunit

VSCodeでプロジェクト単位の拡張機能を設定する - Qiita
https://qiita.com/k_bobchin/items/717c216ddc29e5fbcd43

docker-compose.yml の編集とコンテナ再起動

VSCodeの拡張機能からDockerコンテナ内でテスト実行する場合、対象となるソースファイルを絶対パスでパラメータ指定されます。そのため、コンテナ内でPHPUnitが絶対パスが参照できないと実行できないので、docker-compose.ymlを編集します。

docker-compose.yml(一部)
services:
    laravel.test:
        build:
            context: ./vendor/laravel/sail/runtimes/8.0
            dockerfile: Dockerfile
            args:
                WWWGROUP: '${WWWGROUP}'
        image: sail-8.0/app
        ports:
            - '${APP_PORT:-80}:80'
        environment:
            WWWUSER: '${WWWUSER}'
            LARAVEL_SAIL: 1
        volumes:
            - '.:/var/www/html'
+           - '$PWD:$PWD'
(略)

laravel.testコンテナのvolumes'$PWD:$PWD' を追加して、絶対パスが参照できるようにしました。

docker-compose.ymlを編集したらコンテナを再起動します。

docker-compose.ymlを編集したらコンテナを再起動します。sail restartコマンドだと追加した設定が反映されないのでstopしてからup -dします。

> ./vendor/bin/sail stop
> ./vendor/bin/sail up -d

動作確認

拡張機能のインストールと設定ができたらプロジェクトに含まれているテスト(tests/Feature/AuthenticationTest.php)を実行してみます。
image.png
image.png
image.png

無事にDockerコンテナ内でテストが実行できました。
やったぜ

参考

PHPUnit - Visual Studio Marketplace
https://marketplace.visualstudio.com/items?itemName=emallin.phpunit

VSCodeでプロジェクト単位の拡張機能を設定する - Qiita
https://qiita.com/k_bobchin/items/717c216ddc29e5fbcd43

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