Code Coverage mit PHPUnit und XDebug
In meiner losen Serie zu PHPUnit will ich heute auf eine einfache Möglichkeit hinweisen, zu überprüfen, welche Teile der getesteten Files wirklich von den Unittests abgedeckt sind und welche nicht.
PHPUnit bringt von Hause aus alles mit, um die Code Coverage durchzuführen. Das einzige was noch zur Analyse fehlt ist eine installierte und aktivierte PHP-Extension, nämlich XDebug. (Binaries von XDebug für die Mac OS X User finden sich hier, für den Fall dass man nicht selber kompilieren mag.) Danach (die Option –report steht nur bei installiertem XDebug zur Verfügung) langt es
phpunit --report /mein/zielverzeichnis MeinTest
an der Kommandozeile einzugeben und PHPUnit legt los. Der Report wird in das Verzeichnis geschrieben, welches als Parameter angegeben wurde. Die Abdeckungsanalyse arbeitet sowohl mit einzelnen Tests als auch mit kompletten Test-Suiten, so dass die Codeabdeckung kompletter Projekte auf einmal dokumentiert werden kann. Die Analyse geht bis auf Zeilenebene und erlaubt so sehr gut einen Einblick, wo noch potentielle Schlaglöcher in der Anwendung sein können.