JetBrains IDEでLaravel使うときのPHPUnit設定あれこれ
JetBrains 製 IDE で Laravel を使う際に、PHPUnit の設定で躓きました。
なお、使っているのは IntelliJ IDEA (試用版)ですが、おそらく PhpStorm でも同じだと思います。
大前提
- Laradock でプロジェクト作成済み
- バージョン
- Laravel
- 5.7.19
- PHP
- 7.2.4
テスト実行しても DB 接続できない
前提
-
php artisan migrate
でテーブル作成済み
- テーブルからデータ取得するモデル作成済み
事象
- Laravel
- 5.7.19
- PHP
- 7.2.4
前提
-
php artisan migrate
でテーブル作成済み - テーブルからデータ取得するモデル作成済み
事象
モデルをテストするコードを書いて、IDE から実行すると、以下のメッセージが出ました。
PDOException : SQLSTATE[08006] [7] could not translate host name "postgres" to address: Name or service not known
ちなみに、プロジェクト名/.env
は以下のように設定済みです。とくに問題はなさそうです。1
DB_CONNECTION=pgsql
DB_HOST=postgres
DB_PORT=5432
DB_DATABASE=shopping
DB_USERNAME=default
DB_PASSWORD=secret
ところが、コンテナの中に入って、phpunit tests/
を実行してみると、問題なく動きました。
ここで IDE の設定を確認すると・・・
- Preference -> Language & Frameworks -> PHP -> CLI Interpreters
PHP のバージョンを認識しているので問題なさそうに見えますが、実は、ここで Docker を選択していることが原因でした。
これを以下のように Docker Compose を選択するように修正すると、IDE からも正常にテスト実行することができるようになりました。
副作用?
上記設定を実行したところ、テスト実行するたびに、コンテナが終了するようになりました。
Time: 1.7 seconds, Memory: 14.00MB
OK (4 tests, 4 assertions)
laradock_shop_workspace_1 exited with code 0
Aborting on container exit...
Process finished with exit code 0
IDE からコンテナ起動しようとすると、一旦起動するものの、すぐに終了してしまうので、少し不便です。ターミナルで docker-compose up -d nginx workspace
とすると正常に起動するので実害はないかもしれませんが・・・。
検索すると、フォーラム で質問が上がっているのが見つかりました。どうやらテスト実行するたびにコンテナを起動して、コンテナ終了するのが現在の仕様だそうで 。回避策も載っているけど、どれも今ひとつな気が・・・。どなたか、いい方法ご存知でしたら、ご教示くださいませ。2
テスト結果を色付けしたい
躓いたわけではないのですが、意外と忘れがちなのでメモしておきます。
前提
PHPUnit では、デフォルトでは色付け表示されません。しかし、--colors
オプションを付けることで色付けされるようになります。これと同じことを IDE でもやりたいと思いました。
設定方法
Laravel で作ったプロジェクトの中を見ると、PHPUnit の設定ファイル phpunit.xml
があります。これを見ると、colors="true"
とあり、色付け表示がすでに設定済みでした。
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
bootstrap="vendor/autoload.php"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false">
ということで、IDE で phpunit.xml
を読み込むように設定しました。
- Preference -> Language & Frameworks -> PHP -> Test Frameworks
- 「Default configuration file」に phpunit.xml
のパスを設定します。
まとめ
IDE の設定って、めんどくさいですね...
Author And Source
この問題について(JetBrains IDEでLaravel使うときのPHPUnit設定あれこれ), 我々は、より多くの情報をここで見つけました https://qiita.com/aminevsky/items/d22d8f4de9a9ae942587著者帰属:元の著者の情報は、元の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 .