IntelliJ IDEA hat manchmal Probleme beim Ausführen, Debuggen oder Anzeigen von Code-Coverage für PHPUnit-Tests. Dies kann vorkommen, wenn die generierten Klassen nicht mit der Version von PHPUnit kompatibel sind, die Sie haben.
In meinem Fall ist es IntelliJ IDEA 12.1.6 versus PHPUnit 4.0.14, was immer mit dieser Nachricht fehlschlägt:
%Vor% Der Code, der in /tmp/ide-phpunit.php
generiert wird, enthält keine neue Methode, die von PHPUnit 4.x benötigt wird.
Dinge, die ich versucht habe, funktioniert nicht :
Die beste Lösung, die ich gefunden habe, besteht darin, Ihre IntelliJ-Installation mit einer manuellen Korrektur zu versehen. Diese Anweisungen gehen von Linux-Pfaden aus, aber unter Windows sollte der gleiche grundlegende Prozess möglich sein.
Suchen Sie zuerst die Datei php.jar
in Ihrer IntelliJ-Installation. JAR-Dateien sind eine Art ZIP-Datei, die Sie mit den gleichen Werkzeugen öffnen (und ändern) können. Auf meinem System war es anwesend:
Erstellen Sie eine Sicherungskopie von php.jar
, da wir sie bearbeiten werden.
Öffnen Sie mit einem populären ZIP-Datei-Tool (wie 7-Zip) php.jar
und suchen Sie die compresesd-Datei mit dem Namen:
Extrahieren Sie diese Datei an einen temporären Speicherort, wo Sie sie bearbeiten können.
Innerhalb der Datei müssen wir die Klasse IDE_PHPUnit_Framework_TestListener
finden, was in meinem Fall um die Zeile 303
geht. Für diese Klasse müssen wir eine neue Methode hinzufügen:
Speichern Sie die Datei, wenn Sie fertig sind.
Überschreibe scripts/phpunit.php
im JAR mit deiner neuen Version. Abhängig von Ihrem ZIP-Tool war dies möglicherweise so einfach wie ein Doppelklick auf die Datei, um sie zu öffnen, Ihre Änderungen zu speichern und auf eine Bestätigungsaufforderung zu klicken, aber das hängt davon ab, was Sie verwenden.
Jetzt sollten Sie fertig sein! Das Ausführen, Debuggen oder Generieren von Code-Coverage-Daten mit PHPUnit sollte nur ein einfacher Klick auf eine Schaltfläche sein.
Wenn Sie Ihr PHP-Plugin aktualisieren, wird das Update wahrscheinlich überschrieben und Sie müssen es erneut anwenden.
Tags und Links phpunit intellij-idea