JetBrains IDE에서 Laravel을 사용할 때의 PHPUnit 설정
덧붙여 사용하고 있는 것은 IntelliJ IDEA (시용판)입니다만, 아마 PhpStorm 에서도 같다고 생각합니다.
큰 전제
테스트를 실행해도 DB에 연결할 수 없음
전제
php artisan migrate
에서 테이블 만들기사건
모델을 테스트하는 코드를 작성하고 IDE에서 실행할 때 다음 메시지가 표시되었습니다.
PDOException : SQLSTATE[08006] [7] could not translate host name "postgres" to address: Name or service not known
덧붙여서,
プロジェクト名/.env
(은)는 이하와 같이 설정 끝납니다. 특히 문제는 없을 것 같습니다. 1프로젝트 이름/.env
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"
라고 하고, 색부 표시가 벌써 설정이 끝났습니다.
프로젝트 이름/phpunit.xml<?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 filephpunit.xml
의 경로를 설정합니다.
요약
IDE 설정은 귀찮습니다 ...
보통은 mysql
입니다만, 보통이 아닌 것을 하고 싶어서 postgres
로 했습니다. 지금 생각하면 멈추면 좋았다 (쓴웃음) ↩
원래, 온순하게 디폴트의 MySQL 그대로 두어 두면 문제 없을지도 모르겠네요. 시도하지 않기 때문에 모릅니다. ↩
Reference
이 문제에 관하여(JetBrains IDE에서 Laravel을 사용할 때의 PHPUnit 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/aminevsky/items/d22d8f4de9a9ae942587
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<?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 설정은 귀찮습니다 ...
보통은
mysql
입니다만, 보통이 아닌 것을 하고 싶어서 postgres
로 했습니다. 지금 생각하면 멈추면 좋았다 (쓴웃음) ↩원래, 온순하게 디폴트의 MySQL 그대로 두어 두면 문제 없을지도 모르겠네요. 시도하지 않기 때문에 모릅니다. ↩
Reference
이 문제에 관하여(JetBrains IDE에서 Laravel을 사용할 때의 PHPUnit 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/aminevsky/items/d22d8f4de9a9ae942587텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)