Phpunit: ์ž‘๊ณก๊ฐ€ ์„ค์น˜๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

์— ๋งŒ๋“  2014๋…„ 11์›” 12์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: sebastianbergmann/phpunit

์ž‘๊ณก๊ฐ€.json์˜ require-dev ์„น์…˜์— phpunit์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์„ค์น˜ํ•˜๋ฉด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

"require-dev": {
    "phpunit/phpunit": "4.3.*"
}

์ด๊ฒƒ์€ ํ˜„์žฌ phpunit 4.3.5๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. composer.json ํŒŒ์ผ์€ bin-dir(bin/phpunit)์— phpunit์— ๋Œ€ํ•œ ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์žˆ์Œ์„ ์ง€์ •ํ•˜์ง€๋งŒ GitHub์˜ phpunit์— ๋Œ€ํ•œ ์ฝ”๋“œ๋Š” ๊ทธ๋Ÿฌํ•œ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š์œผ๋ฉฐ ํ›จ์”ฌ ๋” ์ ์€ ์ˆ˜์˜ ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ”„๋กœ์ ํŠธ ์ˆ˜์ค€์—์„œ bin/phpunit์— symlink๋ฅผ ์‹œ๋„ํ•˜๋ฉด ์• ์ดˆ์— symlinkํ•  ํŒŒ์ผ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์ตœ์‹  ์ž‘์„ฑ๊ธฐ PHAR์„ ์‚ฌ์šฉํ•˜๋Š” Ubuntu Linux ์‹œ์Šคํ…œ์— ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅ˜ ์˜ˆ์™ธ๊ฐ€ src/Composer/Installer/LibraryInstaller.php์˜ 246ํ–‰์— ์žˆ๊ณ  ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ "file_put_contents(/xxxxxx/bin/phpunit): ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ์ŠคํŠธ๋ฆผ ์—ด๊ธฐ: ํ•ด๋‹น ํŒŒ์ผ ๋˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค."(ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ฒฝ๋กœ๋Š” xxxxxx๊ฐ€ ์•„๋‹ˆ๋ฉฐ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค).

๊ฐ์‚ฌ ํ•ด์š”.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์˜ค๋Š˜ ์ •ํ™•ํžˆ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ bin ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฒ„๊ทธ ๋ณด๊ณ ์„œ์— ๋Œ€ํ•ด ๋Œ€๋‹จํžˆ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  4 ๋Œ“๊ธ€

๋ฌธ์ œ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Œ:

$ cat composer.json 
{
    "require-dev": {
        "phpunit/phpunit": "4.3.*"
    }
}

$ php composer.phar install
Loading composer repositories with package information
Installing dependencies (including require-dev)
  - Installing sebastian/version (1.0.3)
    Loading from cache

  - Installing sebastian/exporter (1.0.2)
    Loading from cache

  - Installing sebastian/environment (1.2.0)
    Loading from cache

  - Installing sebastian/diff (1.2.0)
    Loading from cache

  - Installing sebastian/comparator (1.0.1)
    Loading from cache

  - Installing symfony/yaml (v2.5.6)
    Loading from cache

  - Installing doctrine/instantiator (1.0.4)
    Loading from cache

  - Installing phpunit/php-text-template (1.2.0)
    Loading from cache

  - Installing phpunit/phpunit-mock-objects (2.3.0)
    Loading from cache

  - Installing phpunit/php-timer (1.0.5)
    Loading from cache

  - Installing phpunit/php-file-iterator (1.3.4)
    Loading from cache

  - Installing phpunit/php-token-stream (1.3.0)
    Loading from cache

  - Installing phpunit/php-code-coverage (2.0.11)
    Loading from cache

  - Installing phpunit/phpunit (4.3.5)
    Downloading: 100%         

phpunit/phpunit suggests installing phpunit/php-invoker (~1.1)
Writing lock file
Generating autoload files

$ ./vendor/bin/phpunit --version
PHPUnit 4.3.5 by Sebastian Bergmann.

๊ท€ํ•˜์˜ ํ”„๋กœ์ ํŠธ์— bin ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฐ€์ •์— ๋Œ€ํ•ด ์‚ฌ๊ณผ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์˜ค๋Š˜ ์•„์นจ์— phpunit ์ €์žฅ์†Œ์˜ ๋ฃจํŠธ์— ์žˆ๋Š” phpunit ํŒŒ์ผ์„ ํ™•์ธํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด ๊ฐ€์ •์ด ์ •ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ์‚ฌ๊ณผ. ๊ทธ๋Ÿฌ๋‚˜ ์—ฌ์ „ํžˆ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ž‘๊ณก๊ฐ€ ์„ค์น˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ด ํ‹ฐ์ผ“์„ ๋‹ซ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ ๊ทผ๊ฑฐ๋Š” ์ž˜๋ชป๋œ ๊ฐ€์ •์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ๋ฌธ์ œ์˜ ์†Œ์Šค๋ฅผ ๋ฐœ๊ฒฌํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ์‹ค์ œ๋กœ phpunit๊ณผ ๊ด€๋ จ๋œ ๊ฒฝ์šฐ ์ ์ ˆํ•˜๊ฒŒ ์—ด๊ฑฐ๋‚˜ ๋‹ค์‹œ ์—ด ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”.

๋‚˜๋Š” ๋‚ด ๋ฌธ์ œ์˜ ์›์ธ์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. composer.json์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ•ญ๋ชฉ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

"require-dev": {
    "phpunit/phpunit": "~3.7"
}

๊ทธ๋ฆฌ๊ณ  bin/phpunit์€ ../vendor/phpunit/phpunit/composer/bin/phpunit์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ์‹ฌ๋ณผ๋ฆญ ๋งํฌ์˜€์Šต๋‹ˆ๋‹ค.

์ž‘๊ณก๊ฐ€ ์„ค์น˜๊ฐ€ ํ•ด๋‹น ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์ง€ ์•Š์•˜๊ณ  ๊นจ์ง„ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ ์ธ bin/phpunit์˜ ๋‚ด์šฉ์„ ์—…๋ฐ์ดํŠธํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์„ ๋•Œ ์‹คํŒจํ•œ ๋‹ค์Œ createUnixyProxy ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—…๋ฐ์ดํŠธ๋ฅผ ์‹œ๋„ํ–ˆ์ง€๋งŒ ๊นจ์ง„ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋กœ ์ธํ•ด ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. phpunit ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ 3.7์—์„œ 4.0์œผ๋กœ ๋ณ€๊ฒฝ๋˜๋ฉด ์ž ์žฌ์ ์œผ๋กœ ์ž‘๊ณก๊ฐ€๊ฐ€ ํ˜ผ๋™๋  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ž‘๊ณก๊ฐ€๋Š” ํ˜„์žฌ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค bin ํด๋”์—์„œ ๊นจ์ง„ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•  ํ•„์š”์„ฑ์„ ์šฐ์•„ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ž˜๋ชป๋œ ๋ณด๊ณ ๋ฅผ ํ•ด์„œ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

์˜ค๋Š˜ ์ •ํ™•ํžˆ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ bin ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฒ„๊ทธ ๋ณด๊ณ ์„œ์— ๋Œ€ํ•ด ๋Œ€๋‹จํžˆ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰