2014-01-07 8 views
6

In letzter Zeit habe ich versucht, meine Spock-Tests in IntelliJ laufen (die früher sehr gut funktionierte und große Debugging/spezifische Testwiederholung auf Fehlerfunktionen hatte) in den letzten Monaten habe ich begann die folgende Fehlermeldung erhalten:Schwierigkeitsgrad läuft Grails Tests in IntelliJ: Illegale Verwendung von nicht virtuellen Funktionsaufruf

| Error Error executing script TestApp: 
(class: com/company/MyServiceSpec, method: super$2$oldImpl signature: 
(Ljava/lang/Object;)Ljava/lang/Object;) 
Illegal use of nonvirtual function call (Use --stacktrace to see the full trace) 

Es ist ein spock Test, der ganz gut von der Kommandozeile ausgeführt wird, einzeln (durch die die Klasse definiert) oder in den gesamten Test-App-Serie. Praktisch alle Spock- und einfachen alten Unit- oder Integrationstests, die ich bei diesem Projekt durchgeführt habe, führen zu ähnlichen Fehlern in IntelliJ.

Ich habe versucht, mit den Laufeigenschaften des Tests (Klassenpfad ein- oder ausgeschaltet, eine einzelne Methode, eine ganze Testklasse oder die gesamte Testreihe laufen zu lassen) ohne Glück die Situation zu beheben. Ich habe auch eine grails clean gemacht und versucht, sie von IntelliJ zu wiederholen: das sah aus, als ob es einmal funktioniert hat und ich die Tests für eine kleine Weile ausführen konnte, aber dann, nachdem ich einige Arbeit gemacht habe, besteht das Problem jetzt weiter.

Ich weiß, dass dies eine vage Frage ist, aber hat jemand ähnliche Fehler gesehen und ein zuverlässiges Mittel gefunden? Ich bin auf Grails 2.1 und Spock 0,7, das gleiche Problem in beiden IntelliJ 12 und 13

+0

Ist es möglich, dass Sie Ihre Tests über IntelliJ mit einer anderen Grails/Groovy-Version ausführen, gegen die die Klassen nicht kompiliert werden? – Gregg

+0

Ich bin mir ziemlich sicher, dass ich sie richtig konfiguriert habe (unter Projektstruktur ist es eine gelistete Abhängigkeit), aber ich habe das schon mal gemuckt, danke für den Vorschlag! –

+0

Rob Fletcher hat mir empfohlen, die Tests als JUnit zu testen, ich werde demnächst eine Chance geben! –

Antwort

3

ich folgende env Variable in meiner Konfiguration Hinzufügen dieses Problem zu lösen verwaltet:

_JAVA_OPTIONS='-Xverify:none' 
0

Überprüfen Sie zunächst Ihre Konfigurationen und klar aus dem Test, den Sie ausgeführt haben, der jetzt fehlschlägt. Es ist möglich, dass Sie die Tests als JUnit ausgeführt haben und jetzt, wenn Sie sie erneut ausführen, nehmen sie dieses Verhalten standardmäßig vor.

Hinweis: Sie können bestimmen, ob dies das Problem durch Ihre Tests über die Kommandozeile ausgeführt (zB Test-App-Einheit Grails com.yourPackage.Whatever), wenn sie wie erwartet passieren dann die Schritte unter Ihrer gespeicherten löschen Testkonfigurationen in IntelliJ

IntelliJ Schritte

  1. Click Run
  2. Klicken Sie auf Bearbeiten Konfigurationen
  3. im linken Bereich des Pop klicken Sie auf den Pfeil, die JUnit-Tests
  4. Next Klicken Sie auf einen Test entrollen und dann auf das Minussymbol klicken (dies für jeden tun sie alle löschen)
  5. Gehen Sie zu Ihrem Test Sie möchten es ausführen und mit der rechten Maustaste darauf klicken und sicherstellen, dass Sie die Option "Grails" auswählen und nicht "jUnit".