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
+
0
-

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
+
0
-

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
+
0
-

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')
Azathoth
Člen | 495
+
0
-

@grogy musíš si tam ručně dát cesru k php.ini souboru, který to má použít.

Milo
Nette Core | 1283
+
+1
-

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.

grogy
Člen | 147
+
0
-

Kdybych přemejšlel.. stačí tam dát ini soubor, který obsahuje nastavený Xdebug. Moc vám všem děkuji za nasměrování. :)

grogy
Člen | 147
+
0
-

JJ to je přesně ono. Moc děkuji za rady.