nemám napsané testy ale coverage ukazuje 57%
- David Krupička
- Člen | 45
Ahoj, poprvé jsem si nainstaloval Nette Tester a využívám codecov.io Zatím mám v kódu jeden test a coverage se mi zobrazuje 57%, je možné že jsem někde udělal chybu nebo špatně chápu coverage když očekávám 0%?
- Michal Vyšinský
- Člen | 608
Ahoj, coverage ukazuje jen, že se kód spustil, takže jestli máš test presenteru, tak je možné, že se opravdu 57 % kódu spustilo. Nic ti ale neukáže, že spuštěný kód je opravdu otestovaný.
Osobně coverage řeším jen u nějaké if-elfseif-else/switch logiky abych věděl, že je otestovaný daný case.
Editoval Michal Vyšinský (22. 2. 2017 11:32)
- David Krupička
- Člen | 45
Ten test vypadá takto. Fakt se mi nezdá že by měl ukazovat tolik %
<?php
namespace Test;
use Nette;
use Tester;
use Tester\Assert;
$container = require __DIR__ . '/bootstrap.php';
class ExampleTest extends Tester\TestCase
{
private $container;
function __construct(Nette\DI\Container $container)
{
$this->container = $container;
}
function setUp()
{
}
function testSomething()
{
Assert::true(TRUE);
}
}
$test = new ExampleTest($container);
$test->run();
- Michal Vyšinský
- Člen | 608
Jak máš nastavený ten coverage? Musíš nastavit, co do něj chceš zahrnout. Hádám, že teď to kontroluje i vendor složku.
- David Krupička
- Člen | 45
Aha, to jsem nikde nenastavoval. To mám hledat u testeru nebo codecov.io? Mám to udělané tak že wercker spustí testy
php ./vendor/nette/tester/src/tester -c ./tests/php.ini tests --coverage coverage.xml
a codecov pak pracuje s tím xml
- Michal Vyšinský
- Člen | 608
Je to nastavení Nette testeru: https://tester.nette.org/cs/#…, konkrétně https://tester.nette.org/cs/#…
Edit: jestli používáš nette/web-project tak by to nejspíš měla bát
složka ‚app‘ (--coverage-src app
)
Editoval Michal Vyšinský (22. 2. 2017 12:03)
- David Krupička
- Člen | 45
Díky moc, je to o 7% menší. Ale pořád mi coverage ukazuje 100% např. u komponent, třeba zde:
class NazevKomponenty extends Nette\Application\UI\Control
Edit: jenom komponenty ukazují 100%, všechny
Editoval David Krupička (22. 2. 2017 12:32)
- Jan Tvrdík
- Nette guru | 2595
@DavidKrupička Pokud chceš code-coverage, co není úplně nahovno, tak musíš použít phpdbg, tj.
php ./vendor/nette/tester/src/tester -p phpdbg -c ./tests/php.ini tests --coverage coverage.xml
- David Krupička
- Člen | 45
Díky, zkouším phpdbg ale zde má tester problém s verzí php, přitom
mám php 7.0
Error: Unable to use phpdbg on PHP < 7.0.0.