Spuštění code-coverage – nejen na jabku
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- grogy
- Člen | 147
Můžete mi, prosím, poradit jak spustit code-coverage? Používám Homebrew (jabko) pro instalaci PHP, mám nainstalovaný Xdebug. Nette Tester ve verzi 1.3.
PHP:
$ php --version
PHP 5.6.2 (cli) (built: Oct 20 2014 11:51:23)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2014 Zend Technologies
with Xdebug v2.2.5, Copyright (c) 2002-2014, by Derick Rethans
$ php-cgi --version
PHP 5.6.2 (cgi-fcgi) (built: Oct 20 2014 11:51:27)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2014 Zend Technologies
with Xdebug v2.2.5, Copyright (c) 2002-2014, by Derick Rethans
Zkoušel jsem:
$ php-cgi src/vendor/nette/tester/Tester/tester.php --coverage out tests/unit/
X-Powered-By: PHP/5.6.2
Content-type: text/html; charset=UTF-8
_____ ___ ___ _____ ___ ___
|_ _/ __)( __/_ _/ __)| _ )
|_| \___ /___) |_| \___ |_|_\ v1.3.0
Usage:
tester.php [options] [<test file> | <directory>]...
Options:
-p <path> Specify PHP interpreter to run (default: php-cgi).
-c <path> Look for php.ini file (or look in directory) <path>.
-l | --log <path> Write log to file <path>.
-d <key=value>... Define INI entry 'key' with value 'val'.
-s Show information about skipped tests.
--stop-on-fail Stop execution upon the first failure.
-j <num> Run <num> jobs in parallel (default: 8).
-o <console|tap|none> Specify output format.
-w | --watch <path> Watch directory.
-i | --info Show tests environment info and exit.
--setup <path> Script for runner setup.
--colors [1|0] Enable or disable colors.
--coverage <path> Generate code coverage report to file.
--coverage-src <path> Path to source code.
-h | --help This help.
- David Matějka
- Moderator | 6445
tester se spousti bez configu, takze budes as muset (aspon ja musim) znovu pridat xdebug jako extension. a taky definovat cestu ke kodu, aby to negenerovalo coverage i pro vendor. a pojmenovat soubor .html, aby to byl html vystup. zhruba takhle:
./vendor/bin/tester --coverage coverage.html --coverage-src ./src -d zend_extension=xdebug.so ./tests/unit
- grogy
- Člen | 147
Bohužel také nic.
$ ./src/vendor/bin/tester --coverage coverage.html --coverage-src ./src -d zend_extension=xdebug.so ./tests/unit
_____ ___ ___ _____ ___ ___
|_ _/ __)( __/_ _/ __)| _ )
|_| \___ /___) |_| \___ |_|_\ v1.3.0
Note: No php.ini is used.
Error: Code coverage functionality requires Xdebug extension (used 'php-cgi' -d 'zend_extension=xdebug.so')
- Milo
- Nette Core | 1283
Jak píšou kluci, xdebug.so je potřeba nějak načíst. Vytvoř si
php.ini
pro testy, třeba v adresáři s testy. Pak zkus:
vendor/bin/tester -c tests/php.ini --info
Ukáže se Ti prostředí, v jakém testy poběží. Tam musí být xdebug
loadnutý. Pak můžeš štelovat --coverage
a
--coverage-src
parametry.