Code-Coverage-Analyse von PHP-Applikationen

Ist die Xdebug-Erweiterung für PHP installiert, so kann PHPUnit bei der Ausführung der Testfälle darüber Buch führen, welche Zeilen des zu testenden Codes für die einzelnen Testfälle ausgeführt (und somit von einem Test "abgedeckt") werden. Diese Information gibt Aufschluss darüber, ob der gesamte Produktionscode von den geschriebenen Testfällen getestet wird. Ist man sich sicher, dass die Testsuite vollständig ist, und es werden dennoch nicht alle Zeilen des Produktionscodes bei der Ausführung der Testfälle erreicht, so sind diese mit einiger Wahrscheinlichkeit redundant und können möglicherweise entfernt werden.

Abbildung 4.4 zeigt den Aufruf des PHPUnit-Kommandozeilenwerkzeugs mit dem Parameter --coverage-html für die Erstellung einer Code-Coverage-Analyse im HTML-Format. Dieser ist zu entnehmen, dass die Methoden getBalance(), setBalance() und withdrawMoney() aufgerufen werden, die Methode depositMoney($amount) aber noch von keinem Testfall abgedeckt ist.

Abbildung 4.4. Code-Coverage-Analyse für die Klasse BankAccount

phpunit --coverage-html BankAccount.html BankAccountTest
PHPUnit 2.2.0 by Sebastian Bergmann.

..

Time: 0.002204

OK (2 tests)
Code-Coverage-Analyse für die Klasse BankAccount