nemám napsané testy ale coverage ukazuje 57%

před 4 měsíci

David Krupička
Člen | 46
+
0
-

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%?

před 4 měsíci

Michal Vyšinský
Člen | 614
+
0
-

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. 11:32)

před 4 měsíci

JZechy
Člen | 101
+
0
-

Zjevně v rámci testu dochází na průchod programu přes tyto metody/části.

před 4 měsíci

David Krupička
Člen | 46
+
0
-

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();

před 4 měsíci

Michal Vyšinský
Člen | 614
+
+3
-

Jak máš nastavený ten coverage? Musíš nastavit, co do něj chceš zahrnout. Hádám, že teď to kontroluje i vendor složku.

před 4 měsíci

David Krupička
Člen | 46
+
0
-

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

před 4 měsíci

Michal Vyšinský
Člen | 614
+
+1
-

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. 12:03)

před 4 měsíci

David Krupička
Člen | 46
+
0
-

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. 12:32)

před 4 měsíci

Jan Tvrdík
Nette guru | 2526
+
+3
-

@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

před 4 měsíci

David Krupička
Člen | 46
+
0
-

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.

před 4 měsíci

David Krupička
Člen | 46
+
0
-

To jsem vyřešil pomocí úpravy vlastního php.ini