nemám napsané testy ale coverage ukazuje 57%

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
David Krupička
Člen | 45
+
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%?

Michal Vyšinský
Člen | 608
+
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. 2017 11:32)

JZechy
Člen | 161
+
0
-

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

David Krupička
Člen | 45
+
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();
Michal Vyšinský
Člen | 608
+
+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.

David Krupička
Člen | 45
+
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

Michal Vyšinský
Člen | 608
+
+2
-

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

Jan Tvrdík
Nette guru | 2595
+
+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
David Krupička
Člen | 45
+
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.

David Krupička
Člen | 45
+
0
-

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