Mein getesteter Code ist voll von endgültigen statischen Klassen. und während wir es für bessere Tests nicht umgestalten können, habe ich eine Zwischenlösung, die mehrere kleine Tests auf seinem eigenen Prozess durchführt. und alles funktioniert gut. aber ich bekomme keinen Bericht, wenn einer den anderen überschreibt.Wie PHP-Einheit mehrere Male ausführen und den Abdeckungsbericht verketten?
Ich erstelle derzeit den Bericht in Klee, aber ich bin sehr offen für andere Berichte.
meine Tests funktionieren nur, wenn phpunit wie ausgeführt wird:
/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)
Aber das wird in jedem Lauf führen den Bericht aus dem vorherigen Wipping. So bekomme ich nur einen Bericht für den letzten. Und wenn ich versuche, sie auszuführen, da phpunit erwartet, den vollständigen Bericht zu generieren, habe ich den Fehler, weil alle meine Klassen ihre eigenen statischen enthalten.
/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
(aber die oben scheitern wird auch bei --process-isolation --no-globals-backup
weil nicht genau, was sie bedeuten ...) - das ist nicht noch eine weitere Frage auf, wie man richtig auf PHP-Einheit Prozess Isolation zu erhalten. Mir geht es gut, es mehrere Male laufen zu lassen, ich will nur einen vollständigen Abdeckungsbericht :)
Gibt es eine Möglichkeit, um die Tests korrekt ausgeführt werden (dh auf mehrere Prozesse zu vermeiden verdorbene globale Klasse Deklaration Raum) wie der erste Code blockieren, aber immer noch umfassenden Code Coverage Report?
danke!