CodeCoverage

CodeCoverage mit PHPUnit messen

Bei der Erstellung von UnitTests ist es wünschenswert, dass die kritischen Stellen im Code getestet werden. Dadurch fallen Fehler in kritischen Stellen schneller auf. Ausserdem ist es gut, wenn soviel Code wie möglich automatisch durch Unittestfälle getestet werden kann, da so ein manueller Aufwand reduziert werden kann.

Bei großen Projekten verliert man jedoch leicht den Überblick über Testfälle und welche Stellen im Code getestet sind, und welche nicht.

Für diesen Zweck kann PHPUnit einen Bericht generieren, der einen Überblick über die Testabdeckung von Code liefert. Diese Berichte nennt man auch „Codecoverage Analyse“.

Eine Vorraussetzung für die Nutzung dieses Features ist die Installation von xDebug. Diese Erweiterung kann unter Ubuntu bequem über Aptitude installiert werden:

Oops, an error occurred! Code: 20190423015743d6b5dce4

Nachdem xDebug installiert wurde kann mit der Option „--coverage-html=/home/myfolder“ in „/home/myfolder“ ein Codecoverage Bericht des aktuellen Testlaufes generiert werden.

Beispiel:

Oops, an error occurred! Code: 201904230157436fa5877f

Das Ergebnis kann bequem mit einem Webbrowser betrachtet werden:


Die CodeCoverage Analyse gibt Aufschluss darüber, welche Bereiche einer Klasse nicht getestet sind. Bei einem großen Projekt ist jedoch auch intressant, ob es auch komplette Klassen gibt, für die keine Testfälle existieren.

Mit der PHPUnit XML Konfiguration lassen sich Test zu mehreren Suiten zusammenfassen und die CodeCoverage Analyse kann auch Dateien in einem Verzeichnis einbeziehen, die ungestetet sind.

Navigation