์ฐ์ํ PHP Test Framework Pest - #1 ์ค์นํ๊ธฐ
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
Pest ๋ฅผ ์ฌ์ฉํ๋ ค๋ ํ๋ก์ ํธ์ composer.json ์ ๋ค์ ์ค์ ์ด ์๋์ง ํ์ธํ๊ณ ์์ผ๋ฉด ์ค์ ํฉ๋๋ค.
"minimum-stability": "dev", "prefer-stable": true,
Pest ๋ PHPUnit 9.3 ์ด์์ ํ์๋ก ํ๋ฏ๋ก ์์กด์ฑ์ ์ ๋ฐ์ดํธํฉ๋๋ค.
$ composer require phpunit/phpunit:"^9.3.10" --dev --update-with-dependencies
๊ธฐ์กด ํ๋ก์ ํธ์ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด 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
์ด๋ด๋๋ย nikic/php-parser ๋ง ์ ๋ฐ์ดํธํด ์ฃผ๊ณ ๋ค์ phpunit ์ ์ ๋ฐ์ดํธ ํฉ๋๋ค.
$ composer update ย nikic/php-parser
Laravel ์ ์ฌ์ฉํ ๊ฒฝ์ฐย collisionย ์ 5.0 ์ด์์ผ๋ก ์ ๋ฐ์ดํธํด์ผ ํฉ๋๋ค.
$ composer require nunomaduro/collision:"^5.0" --dev --update-with-dependencies
์ด์ pest ๋ฅผ ์ค์นํฉ๋๋ค.
$ composer require pestphp/pest --dev
๋ผ๋ผ๋ฒจ์ ์ฌ์ฉํ๋ค๋ฉด plugin ์ ์ค์นํด ์ค๋๋ค.
$ composer require pestphp/pest-plugin-laravel --dev
์ถ๊ฐ๋ artisan command ์ธย pest:install ์ ์คํํ๋ฉด ์ค์ ํ์ผ๋ค์ ์์ฑํ๊ณ ย github ์คํ๋ฅผ ์ฐ๊ฒ ๋๊ณ ๋ฌผ์ด๋ด ๋๋ค.
$ php artisan pest:install
์ด๋ฐ ํ๋ฅญํ ์ ํ์ ๋ง๋ค๊ณ ๊ณต๊ฐํ์ผ๋ ์ ์ ์งฌ๋ด์ github star ๋ฅผ ํ ๋ฒ ์ฐ์ด์ค๋๋ค.
laravel ์ด ์๋ ๋ค๋ฅธ ํ๋ ์์ํฌ ์ฌ์ฉ์๋ ์๋ ๋ช ๋ น์ ์คํํฉ๋๋ค.
./vendor/bin/pest --init
์ด์ vendor ์ pest ๋ฅผ ์ง์ ์คํํ๋ฉด ๋ชจ๋ ๋จ์ ํ ์คํธ๋ฅผ ์คํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ํ์ํฉ๋๋ค.
./vendor/bin/pest