Mój testowany kod jest pełen ostatecznych klas statycznych. i chociaż nie możemy tego zmienić na lepsze testy, mam rozwiązanie pośrednie, które uruchamia kilka małych testów na własnym procesie. i wszystko działa dobrze. ale nie otrzymuję raportu o zasięgu, ponieważ jeden zastępuje drugi.jak wielokrotnie uruchamiać jednostkę php i łączyć raport o zasięgu?
Aktualnie generuję raport w koniczynie, ale jestem bardzo otwarty na inne raporty.
moje testy działają tylko gdy phpunit prowadzony jest jako:
/home/y/bin/phpunit --coverage-html clover --coverage-clover clover/report.xml --include-path src/ tests/aTest.php
OK (1 test, 1 assertions)
/home/y/bin/phpunit --coverage-html clover --coverage-clover clover/report.xml --include-path src/ tests/bTest.php
OK (1 test, 1 assertions)
/home/y/bin/phpunit --coverage-html clover --coverage-clover clover/report.xml --include-path src/ tests/cTest.php
OK (1 test, 1 assertions)
Ale to spowoduje każdym biegu wipping raport z poprzedniego. Więc otrzymuję raport tylko za ostatni. A jeśli spróbuję uruchomić je, ponieważ phpunit spodziewa się wygenerować pełny raport, mam awarię, ponieważ wszystkie moje klasy zawierają własne statyczne.
/home/y/bin/phpunit --coverage-html clover --coverage-clover clover/report.xml --include-path src/ tests/
. (first test pass)
PHP Fatal error: Cannot redeclare class Something
make[1]: *** [phpunit_run] Error 255
(ale powyższe zawiedzie nawet --process-isolation --no-globals-backup
ponieważ nie są dokładnie co one oznaczają ...) - to nie jest jeszcze inna kwestia, w jaki sposób dostać się prawidłowo izolację procesów na jednostkę php. Czuję się dobrze działając kilka razy, chcę tylko pełny raport pokrycia :)
Czy istnieje sposób, aby testy zostały przeprowadzone poprawnie (np. w kilku procesach, aby uniknąć skażonej przestrzeni deklaracji klasy globalnej), tak jak pierwszy kod blokować, ale nadal masz kompleksowy raport dotyczący zasięgu kodu?
dziękuję!