Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΡΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ phpunit Π² ΡΠ°Π·Π΄Π΅Π» require-dev ΡΠ°ΠΉΠ»Π° composer.json, ΠΏΠΎΡ ΠΎΠΆΠ΅, Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
"require-dev": {
"phpunit/phpunit": "4.3.*"
}
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΡΠΎ ΠΏΡΡΠ°Π΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ phpunit 4.3.5. Π€Π°ΠΉΠ» composer.json ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ bin (bin/phpunit) Π΅ΡΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» Π΄Π»Ρ phpunit, Π½ΠΎ ΠΊΠΎΠ΄ Π΄Π»Ρ phpunit Π² GitHub Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, Π° ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΠ°ΠΉΠ»Π° phpunit Π² ΡΡΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΠΏΡΡΠ°Π΅ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ²ΡΠ·Π°ΡΡ Π΅Π³ΠΎ Ρ bin/phpunit Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΎΠ½ ΡΠ΅ΡΠΏΠΈΡ Π½Π΅ΡΠ΄Π°ΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π½Π΅Ρ ΡΠ°ΠΉΠ»Π° Π΄Π»Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΡΠ»ΠΊΠΈ.
ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Ubuntu Linux Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΎΡΠ° PHAR, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ErrorException Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΡΡΠΎΠΊΠ΅ 246 ΡΠ°ΠΉΠ»Π° src/Composer/Installer/LibraryInstaller.php, Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Β«file_put_contents (/xxxxxx/bin/phpunit): Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ Π΄Π»Ρ ΠΎΡΠΊΡΡΡΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°: ΠΠ΅Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°" (ΠΏΡΡΡ ΠΊ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π΅ xxxxxx, ΠΎΠ½ Π±ΡΠ» ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½).
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ.
ΠΠ΅ ΡΠ²Π΅ΡΠ΅Π½, Π² ΡΠ΅ΠΌ Π²Π°ΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°:
$ 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.
composer install Π½Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ» ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΡΡ ΡΡΡΠ»ΠΊΡ, ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΠΏΠΎΠΏΡΡΠ°Π»ΡΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ bin/phpunit, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» Π½Π΅ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΉ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΡΠ»ΠΊΠΎΠΉ, ΠΎΠ½ ΠΏΠΎΡΠ΅ΡΠΏΠ΅Π» Π½Π΅ΡΠ΄Π°ΡΡ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠΏΡΡΠ°Π»ΡΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° createUnixyProxy, ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΈΠ·-Π·Π° ΡΠ»ΠΎΠΌΠ°Π½Π½ΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΡΠ»ΠΊΠΈ. ΠΠΎΡ ΠΎΠΆΠ΅, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΡΠΎΠΌ, Π³Π΄Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» phpunit Ρ 3.7 Π½Π° 4.0, ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΠ±ΠΈΠ²Π°Π΅Ρ Ρ ΡΠΎΠ»ΠΊΡ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΎΡΠ°, Ρ ΠΎΡΡ Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΈΠ·ΡΡΠ½ΠΎ ΡΠΏΡΠ°Π²ΠΈΡΡΡΡ Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π½Π΅ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΉ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΡΠ»ΠΊΠΈ Π² ΠΏΠ°ΠΏΠΊΠ΅ bin Π»ΡΡΡΠ΅, ΡΠ΅ΠΌ ΡΠΎ, ΡΡΠΎ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, ΠΈ ΠΈΠ·Π²ΠΈΠ½ΠΈΡΠ΅ Π·Π° Π»ΠΎΠΆΠ½ΡΠΉ ΠΎΡΡΠ΅Ρ.
ΠΠΎΠ»ΡΡΠΎΠ΅ ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΎΡΡΠ΅Ρ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ΅Π³ΠΎΠ΄Π½Ρ Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Ρ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΠΈ ΡΠΌΠΎΠ³ ΡΠ΅ΡΠΈΡΡ Π΅Π΅, ΡΠ΄Π°Π»ΠΈΠ² ΠΏΠ°ΠΏΠΊΡ binβ¦
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠΎΠ»ΡΡΠΎΠ΅ ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΎΡΡΠ΅Ρ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ΅Π³ΠΎΠ΄Π½Ρ Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Ρ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΠΈ ΡΠΌΠΎΠ³ ΡΠ΅ΡΠΈΡΡ Π΅Π΅, ΡΠ΄Π°Π»ΠΈΠ² ΠΏΠ°ΠΏΠΊΡ binβ¦