Was ist phpcov und wofür wird es 2026 eingesetzt?
phpcov ist das offizielle CLI-Frontend für die php-code-coverage-Bibliothek von Sebastian Bergmann. Es wird eingesetzt, um .cov-Dateien aus mehreren parallelen PHPUnit-Läufen zu einem einzigen Coverage-Bericht zusammenzuführen und um gezielte Patch-Coverage für Git-Diffs zu berechnen.
Wie unterscheidet sich phpcov von PHPUnit 2026?
PHPUnit führt Tests aus und erzeugt dabei .cov-Dateien. phpcov verarbeitet diese Dateien im Nachgang: Es merged mehrere Reports zusammen, konvertiert sie in verschiedene Ausgabeformate (HTML, XML) und berechnet Patch-Coverage. Die beiden Tools ergänzen sich, ersetzen sich aber nicht.
Ist phpcov kostenlos nutzbar 2026?
Ja, phpcov ist Open Source (BSD-3-Clause) und kostenlos. Es wird als PHAR-Archiv von phar.phpunit.de bereitgestellt oder über Phive installiert. Eine Composer-Installation wird vom Autor nicht empfohlen, da es sich um ein eigenständiges Tool handelt.
Wie installiert man phpcov unter Linux und macOS 2026?
Die empfohlene Methode ist Phive: phive install phpcov. Alternativ per PHAR: wget https://phar.phpunit.de/phpcov-X.Y.phar, dann php phpcov-X.Y.phar --version zur Verifikation. X.Y mit der gewünschten Version ersetzen.
Was ist der Unterschied zwischen phpcov merge und patch-coverage 2026?
phpcov merge fasst mehrere .cov-Dateien zu einem Gesamtbericht zusammen. phpcov patch-coverage wertet aus, wie viele der im aktuellen Git-Diff geänderten Zeilen durch Tests abgedeckt sind. Beide Befehle arbeiten auf .cov-Dateien, verfolgen aber unterschiedliche Auswertungsziele.
Wie funktioniert phpcov merge in einer parallelen CI-Pipeline?
Jeder parallele Test-Job ruft PHPUnit mit --coverage-php auf und schreibt eine eigene .cov-Datei. Ein nachgelagerter Merge-Job sammelt alle .cov-Dateien in einem Verzeichnis und ruft phpcov merge --html /output /cov-dir auf. Das Ergebnis ist ein einziger HTML-Bericht über die Gesamt-Coverage.
Kann phpcov .cov-Dateien von verschiedenen PHP-Versionen mergen?
Standardmäßig verlangt phpcov identische PHP-Versionen, Coverage-Treiber und Git-Status. Mit dem Flag --do-not-require-matching-php-version lässt sich diese Prüfung deaktivieren, was heterogene CI-Umgebungen unterstützt.
Was bedeutet Exit-Code 2 bei phpcov patch-coverage?
Exit-Code 2 bedeutet, dass keine geänderten ausführbaren Zeilen erkannt wurden. Das deutet meist auf einen Pfad-Mismatch hin: Die Dateipfade im Diff stimmen nicht mit den Pfaden in den Coverage-Daten überein. Lösung: --path-prefix verwenden, um den korrekten Basispfad anzugeben.
Wie kombiniert man phpcov mit Codecov oder SonarQube?
phpcov merge kann neben HTML auch OpenClover XML (--openclover) ausgeben. Dieses XML-Format ist kompatibel mit Codecov und SonarQube. Mehrere Ausgabeformate lassen sich in einem einzigen Merge-Aufruf kombinieren.
Muss phpcov auf dem gleichen Server laufen wie die Tests?
Nein. Mit der Option --source kann ein abweichender Quellpfad angegeben werden. Das ist nützlich, wenn .cov-Dateien auf einem Build-Server erzeugt wurden, der Merge aber auf einer anderen Maschine mit abweichendem Dateipfad stattfindet.
Ist phpcov DSGVO-konform einsetzbar 2026?
phpcov ist ein lokal laufendes CLI-Tool ohne externe Datenübertragung. Es verarbeitet ausschließlich lokale .cov-Dateien und sendet keine Daten an externe Server. DSGVO-Relevanz entsteht erst, wenn die generierten Berichte auf externe Dienste wie Codecov hochgeladen werden.