IntelliJ IDEA führt keine PHPUnit 4.0-Tests durch

7

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 :

  • Wenn Sie die Datei manuell reparieren und sie schreibgeschützt markieren, wird IntelliJ beendet und Sie können sich beschweren, dass sie die Datei nicht ersetzen kann.
  • Das Einrichten eines "run-before" -Befehls, um die Datei automatisch zu patchen, reicht nicht aus, da sie weder zum Debuggen noch zur Code-Abdeckung funktioniert, sondern nur für reguläre Läufe.
Darien 02.04.2014, 00:54
quelle

1 Antwort

18

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.

Finde das JAR

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:

%Vor%

Erstellen Sie eine Sicherungskopie von php.jar , da wir sie bearbeiten werden.

Entpacken Sie die Vorlage

Öffnen Sie mit einem populären ZIP-Datei-Tool (wie 7-Zip) php.jar und suchen Sie die compresesd-Datei mit dem Namen:

%Vor%

Extrahieren Sie diese Datei an einen temporären Speicherort, wo Sie sie bearbeiten können.

Fügen Sie die Methode der Vorlage hinzu

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:

%Vor%

Speichern Sie die Datei, wenn Sie fertig sind.

Aktualisieren Sie das JAR mit der neuen Vorlage

Ü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.

Starten Sie IntelliJ neu

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.

    
Darien 02.04.2014, 00:54
quelle

Tags und Links