Coverage vyhazuje \pcov\collect() vraci null (v dockeru)

Majksa
Člen | 17
+
0
-

Ahoj,

již delší dobu řeším problém týkající se coverage.
Aplikaci spoustim pomoci make compose-dev.
Pokud sputim make tests tak vsechno probehne v poradku, ale pokud spustim make tests-coverage, tak mi konzole vypise u kazdeho testu:

   Exited with error code 255 (expected 0)
   E_WARNING: foreach() argument must be of type array|object, null given

   in src/CodeCoverage/Collector.php(124)
   in src/CodeCoverage/Collector.php(94) Tester\CodeCoverage\Collector::collectPCOV()
   in [internal function]Tester\CodeCoverage\Collector::save()

Nevite nekdo co s tim, pripadne nemate funkcni docker-compose konfiguraci s testy a code coverage?

Git repo s kodem zde: https://gitlab.com/…tte-template
+muj config/local.neon

# This file is auto-generated by composer
parameters:
	database:
		driver: pdo_mysql
		host: mysql
		dbname: apitte
		user: apitte
		password: apitte
		port: 3306

Marek Bartoš
Nette Blogger | 569
+
+1
-

Trochu mě zaráží, že jako php interpret máš nastavený phpdbg, ale chyba hlásí pcov. Nevím jak se s Nette používá pcov, ale použil bych ten, bez kombinace s phpdbg. Používá implementaci z php a měří tak lépe

Majksa
Člen | 17
+
0
-

to mě popravdě taky trochu překvapilo :D
máš nějakou funkční konfiguraci? mě je úplně jedno co použiji, když to bude fungovat – tohle mám jen proto, že to tak bylo v contributte apitte-skeletonu.

Milo
Nette Core | 1248
+
+1
-

pcov je na coverage přímo dělaný a také nejrychlejší. Myslím, že by to mělo fungovat i s PHPDBG. To vypadá na nějaký neošetřený stav v Testeru. Až budu u PC, kouknu na to.

Majksa
Člen | 17
+
0
-

Díky moc :)
Jo a kdyby ses chtěl podělit php.ini, který používáš na testy, tak taky budu moc vděčný. Já zatím používám ten co si vytvořím v dockeru (ten globální pro celý container), ale rozhodně bude lepší mít nějaký custom přímo na testy (už jenom kvůli memory limitu)

Marek Bartoš
Nette Blogger | 569
+
+1
-

@Milo pcov v dokumentaci zmiňuje, že to není možné kombinovat https://github.com/krakjoe/pcov#…

Milo
Nette Core | 1248
+
0
-

Aha! Díky. Tak to bude snadné :-)

Majksa
Člen | 17
+
0
-

díky. už se mi to podařilo vyřešit.
pouštím to v pcov, ale hlavní chyba byla v tom, že když jsem si udělal a načetl vlastní php.ini, abych tam nastavil to pcov.enabled=1, tak to nic nezměnilo, ale když jsem to udělal přes -d pcov.enabled=1, tak už to funguje