| ์ง๋ฌธ | ใ
| --------------------| ---------------
| PHPUnit ๋ฒ์ | 5.7.21
| PHP ๋ฒ์ | 5.6.30
| ์ค์น ๋ฐฉ๋ฒ | ์๊ณก๊ฐ
์๋ ,
ํด๋์ค ์ด๋ฆ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ฐ์ง ์์ ๋ PHPUnit์์ ์ด์ํ ๋์์ ๋ฐ๊ฒฌํ์ต๋๋ค. #731๊ณผ ๊ด๋ จ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ํฉ:
TestBase
TestBase.php
ํ์ผ์ _Test_๋ก ๋๋์ง ์์ผ๋ฏ๋ก ํธ์ถํด์๋ ์ ๋ฉ๋๋ค.MyTest
ChildTest.php
ํ์ผ(์ด๋ฆ์ด ํ๋ฆฌ๋ฉด). phpunit tests/
๋ฅผ ํ๋ฉด No tests found in class "Edyan\MyPackage\Tests\TestBase"
๊ฐ ๋๋ฉฐ ํด๋์ค์ ํฌํจ๋ ํ
์คํธ๊ฐ ์ ์คํ๋ฉ๋๋ค.TestBase
๋ฅผ abstract
๋ก ์ค์ ํ๋ฉด ๋ฌธ์ ์์ต๋๋ค.
MyTest
์ ์ด๋ฆ์ ChildTest
๋ก ๋ณ๊ฒฝํ๋ฉด ๋ฌธ์ ์์ต๋๋ค.
์ด๋ค ์๊ฐ?
๊ฐ์ฌ ํด์
์๊ณก๊ฐ๋ฅผ ์ฌ์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์ PSR-0/4 ์๋ ๋ก๋๋ฅผ ์ฌ์ฉํฉ๋๋ค. PSR ํ์ค์ ๋ฐ๋ฅด๋ฉด ํด๋์ค์ ํ์ผ ์ด๋ฆ์ด ์ผ์นํ์ง ์์ผ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค.
๊ทธ๊ฒ์ PHPUnit์ด ํ์ผ๊ณผ ๋ค๋ฅธ ์ด๋ฆ์ ๊ฐ์ง ํด๋์ค๋ฅผ ๋ก๋ํด์๋ ์ ๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๊น? ์๊ณก๊ฐ๋ฅผ ์ฌ์ฉํ์ฌ CDE.php
์ ์๋ ABC
ํด๋์ค๋ฅผ ๋ก๋ํ๋ ค๊ณ ํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
๊ฐ์ฌ ํด์
์์ฒด ํ
์คํธ๋ฅผ ํฌํจํ์ง ์๋ TestBase
ํด๋์ค์ ๊ฐ์ ๊ธฐ๋ณธ ํด๋์ค๋ abstract
๋ก ์ ์ธํด์ผ ํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ PHPUnit์ ์กด์ฌํ์ง ์๋ ํ
์คํธ๋ฅผ ์คํํ์ง ์์ต๋๋ค.
๊ทธ๋ ๊ตฐ์. ๋ชจ๋ฒ ์ฌ๋ก ๊ฐ์ฌํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์์ฒด ํ ์คํธ๋ฅผ ํฌํจํ์ง ์๋
TestBase
ํด๋์ค์ ๊ฐ์ ๊ธฐ๋ณธ ํด๋์ค๋abstract
๋ก ์ ์ธํด์ผ ํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ PHPUnit์ ์กด์ฌํ์ง ์๋ ํ ์คํธ๋ฅผ ์คํํ์ง ์์ต๋๋ค.