일부 코드를 변경할 때마다 PHPUnit 테스트가 자동으로 다시 실행된다면 좋지 않을까요? 이 패키지는 바로 그렇게 할 수 있습니다.
패키지가 설치되면 다음을 수행할 수 있습니다.
phpunit-watcher watch
그 모습은 다음과 같습니다.
그러면 app
, src
또는 tests
디렉터리의 파일이 수정될 때마다 테스트가 실행되고 다시 실행됩니다.
PHPUnit에 몇 가지 인수를 전달하고 싶으십니까? 문제 없습니다. 다음 항목에 추가하세요.
phpunit-watcher watch --filter=it_can_run_a_single_test
Laracon EU 2017에서의 훌륭한 강연에서 Amo Chohan은 우리의 phpunit-watcher가 실제로 작동하는 모습을 보여줍니다.
우리는 동급 최고의 오픈 소스 패키지를 만드는 데 많은 리소스를 투자합니다. 유료 제품 중 하나를 구매하여 우리를 지원할 수 있습니다.
귀하가 사용하고 있는 당사 패키지를 언급하면서 귀하의 고향에서 엽서를 보내주셔서 진심으로 감사드립니다. 연락처 페이지에서 주소를 확인하실 수 있습니다. 우리는 수신된 모든 엽서를 가상 엽서 월에 게시합니다.
이 패키지를 다음과 같이 전역적으로 설치할 수 있습니다.
composer global require spatie/phpunit-watcher
그 후 phpunit-watcher watch
시스템의 모든 디렉토리에서 실행될 수 있습니다.
또는 프로젝트의 개발 종속성으로 패키지를 로컬에 설치할 수 있습니다.
composer require spatie/phpunit-watcher --dev
로컬에 설치하면 vendor/bin/phpunit-watcher watch
사용하여 실행할 수 있습니다.
모든 예제에서는 패키지를 전역적으로 설치했다고 가정합니다. 로컬 설치를 선택한 경우 phpunit-watcher
언급된 모든 곳에 vendor/bin/
추가하세요.
다음을 사용하여 감시자를 시작할 수 있습니다.
phpunit-watcher watch
그러면 테스트가 실행되고 src
또는 tests
디렉터리의 파일이 수정될 때마다 다시 실행됩니다.
PHPUnit에 몇 가지 인수를 전달하고 싶으십니까? 문제 없습니다. 다음 항목에 추가하세요.
phpunit-watcher watch --filter=it_can_run_a_single_test
Composer 스크립트에서 phpunit-watcher
실행할 때 대화형 명령이 작동하고 기본 시간 초과를 비활성화하려면 입력을 리디렉션해야 할 수 있습니다.
{
"scripts" : {
"test:watch" : [
" Composer \ Config::disableProcessTimeout " ,
" phpunit-watcher watch < /dev/tty "
]
}
}
Windows에서는 현재 TTY가 지원되지 않으므로 모든 상호 작용이 비활성화되었습니다. 변경 사항을 감시하는 동안 phpunit-watcher
처음 호출할 때 PHPUnit에 대한 모든 인수를 제공해야 합니다.
도구 동작의 특정 측면을 수정할 수 있습니다. 옵션 파일의 이름은 .phpunit-watcher.yml
, phpunit-watcher.yml
또는 phpunit-watcher.yml.dist
일 수 있습니다. 도구는 해당 순서대로 파일을 찾습니다.
프로젝트 디렉터리에 구성 파일이 없으면 도구는 프로젝트 디렉터리의 상위 디렉터리에 파일이 있는지 확인합니다.
다음은 몇 가지 예시 콘텐츠입니다. 모든 옵션에 대한 자세한 설명을 보려면 계속 읽어보세요.
watch :
directories :
- src
- tests
fileMask : ' *.php '
notifications :
passingTests : false
failingTests : false
phpunit :
binaryPath : vendor/bin/phpunit
arguments : ' --stop-on-failure '
timeout : 180
프로젝트 디렉토리에 .phpunit-watcher.yml
이라는 파일을 생성하여 감시 중인 디렉토리를 사용자 정의할 수 있습니다. 다음은 몇 가지 예시 콘텐츠입니다.
watch :
directories :
- src
- tests
exclude :
- lib
fileMask : ' *.php '
ignoreDotFiles : true
ignoreVCS : true
ignoreVCSIgnored : false
자세한 내용은 Finder 설명서를 참조하세요.
대규모 리포지토리에서 성능 지연이 발생하는 경우 감시할 필요가 없는 대규모 하위 디렉터리에 대해 exclude
항목을 추가해 보세요. ignore...
옵션을 활성화하는 것도 도움이 될 수 있습니다. '*.php'
파일 마스크도 사용하고 있는지 확인하는 것도 중요합니다.
기본적으로 이 도구는 테스트가 통과하거나 실패할 때마다 데스크톱 알림을 표시합니다. 특정 데스크톱 알림을 비활성화하려면 notifications
키를 추가하여 .phpunit-watcher.yml
업데이트하세요.
notifications :
passingTests : false
failingTests : false
기본적으로 도구는 각 실행 후 키보드 작업에 대한 도우미를 표시합니다. .phpunit-watcher.yml
에 hideManual
키를 추가하여 이러한 도움말 메시지를 숨길 수 있습니다.
hideManual : true
기본적으로 도구는 기본 PHPUnit 바이너리 파일로 vendor/bin/phpunit
사용하지만, 다른 위치에 바이너리 파일이 있는 사람들을 위해 이 값을 사용자 정의할 수 있으면 유용할 수 있습니다.
.phpunit-watcher.yml
구성 파일에서 이를 구체적으로 지정할 수 있습니다. 예는 다음과 같습니다.
phpunit :
binaryPath : ./vendor/phpunit/phpunit/phpunit
감시자가 시작될 때마다 동일한 인수를 PHPUnit에 전달하려면 .phpunit-watcher.yml
구성 파일에서 해당 인수를 지정하면 됩니다. 예는 다음과 같습니다.
phpunit :
arguments : ' --stop-on-failure '
일부 인수(예: phpunit-watcher watch --filter=my_favourite_test
)를 사용하여 도구를 시작할 때 해당 인수는 구성 파일에 지정된 인수 대신 사용됩니다.
최근 변경된 사항에 대한 자세한 내용은 CHANGELOG를 참조하세요.
composer test
자세한 내용은 CONTRIBUTING을 참조하세요.
보안 관련 버그를 발견한 경우 이슈 트래커를 사용하는 대신 [email protected]로 메일을 보내주세요.
이 패키지(MIT 라이센스)를 무료로 사용할 수 있지만, 자주 사용한다면 귀하가 사용하고 있는 패키지를 언급하면서 고향에서 엽서를 보내주시면 감사하겠습니다.
주소는 Spatie, Kruikstraat 22, 2018 Antwerp, Belgium입니다.
우리는 받은 모든 엽서를 회사 웹사이트에 게시합니다.
우리는 Christoper Pitt의 훌륭한 기사를 읽은 후 이 패키지를 만들기 시작했습니다.
대화형 명령은 Jest에서 영감을 받았습니다.
MIT 라이센스(MIT). 자세한 내용은 라이센스 파일을 참조하십시오.