Pest 는 collision 과 laravel zero 의 제작자인 Nuno Maduro 가 만든 test framework 으로 PHPUnit 을 wrapping 해서 편리하고 가독성 있는 테스트를 작성할 수 있게 도와줍니다.
(Nuno 씨는 뛰어난 실력을 갖추고 심지어 친절도 합니다. 개싸가지 Graham Campbell 과는 비교가 되죠.)
설치
먼저 phpunit.xml 이 프로젝트 루트 폴더에 있는지 확인합니다. 없으면 pest github 에서 다운받거나 콘솔에서 다음 명령을 실행합니다.
wget https://raw.githubusercontent.com/pestphp/pest/master/stubs/Laravel/phpunit.xml
BASH
Pest 를 사용하려는 프로젝트의 composer.json 에 다음 설정이 있는지 확인하고 없으면 설정합니다.
"minimum-stability": "dev",
"prefer-stable": true,
CODE
Pest 는 PHPUnit 9.3 이상을 필요로 하므로 의존성을 업데이트합니다.
PHPUnit 업데이트
$ composer require phpunit/phpunit:"^9.3.10" --dev --update-with-dependencies
BASH
기존 프로젝트의 경우 다음과 같이 nikic/php-parser 관련 의존성 에러가 나는 경우가 있습니다.
Problem 1
- Installation request for phpunit/phpunit 9.3.10 -> satisfiable by phpunit/phpunit[9.3.10].
- Conclusion: remove nikic/php-parser v4.4.0
- Conclusion: don't install nikic/php-parser v4.4.0
CODE
이럴때는 nikic/php-parser 만 업데이트해 주고 다시 phpunit 을 업데이트 합니다.
$ composer update nikic/php-parser
BASH
Laravel 을 사용할 경우 collision 을 5.0 이상으로 업데이트해야 합니다.
$ composer require nunomaduro/collision:"^5.0" --dev --update-with-dependencies
BASH
이제 pest 를 설치합니다.
$ composer require pestphp/pest --dev
BASH
라라벨을 사용한다면 plugin 을 설치해 줍니다.
$ composer require pestphp/pest-plugin-laravel --dev
BASH
추가된 artisan command 인 pest:install 을 실행하면 설정 파일들을 생성하고 github 스타를 찍겠냐고 물어봅니다.
$ php artisan pest:install
BASH
이런 훌륭한 제품을 만들고 공개했으니 잠시 짬내서 github star 를 한 번 찍어줍니다.
laravel 이 아닌 다른 프레임워크 사용자는 아래 명령을 실행합니다.
./vendor/bin/pest --init
BASH
이제 vendor 의 pest 를 직접 실행하면 모든 단위 테스트를 실행하고 결과를 표시합니다.
Ref