"Forked Java VM wurde unerwartet beendet" -Fehler von Junit-Tests
Ich habe ein java-junit-test, der geht, wenn allein auf einem Entwicklungsrechner. Wir haben auch einen hudson-job läuft alle tests, die aufgerufen wird, über die Ameise, die auf einem Mac OS X 10.4 Knoten mit Java 1.5. Der test war vorbei, in der hudson-build, bis vor kurzem, aber jetzt (ohne zugehörigen code-änderungen) ein test scheitert jedes mal mit der folgenden Fehlermeldung:
Fehlermeldung
Gabel-Java-VM abnormal beendet.
Bitte beachten Sie die Zeit, in der Bericht
spiegelt nicht die Zeit, bis der VM
exit.
Stacktrace
junit.Rahmen.AssertionFailedError:
Gabel-Java-VM abnormal beendet.
Bitte beachten Sie die Zeit, in der Bericht
spiegelt nicht die Zeit, bis der VM
exit.
googeln zeigt, viele andere zu haben scheinen, führen in das gleiche problem, aber dort konnte ich nicht finden keine Antwort.
InformationsquelleAutor der Frage Alb | 2009-12-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stand ich vor einem ähnlichen Problem. Ich lief die junit-tests als eine ant-task. Ich fügte hinzu, die showoutput="ja" ant junit-Eigenschaft und lief die ant-junit-task. Dann zeigte der Ausnahme-stack-trace, die die Gabel-jvm zu beenden.
InformationsquelleAutor der Antwort Prashanth
Für mich war es ein "java.lang.OutOfMemoryError" in der Gabel-VM (Aufgabe mit junit fork="yes"), so dass diese Meldung erscheint in der VM.
Den OutOfMemory-zu sehen war in der ant-Protokoll (gut sichtbar, da es noch vorhanden ist).
Benutze ich ant 1.7.1, also keine Hoffnung mit dem Upgrade ant.
Nachdem ich die gleiche VM-Parameter in die "Ausführen - >External tools - >External tools - >JRE" als in Eclipse.ini (-Xms40m -Xmx512m -XX:MaxPermSize=256M), das problem ist gelöst.
Halte ich die Gabel auf "no", um sicher zu sein ant verwenden Sie die Parameter.
InformationsquelleAutor der Antwort Tristan
Ich glaube, ich sah diesen Fehler einmal als ich endete mit mehreren Versionen von junit auf meinem classpath. Sein könnte lohnt sich.
InformationsquelleAutor der Antwort Sharebear
Ist die VM abstürzt ? Finden Sie eine dump-Datei (genannt
hs_err_pid*.log
) ? Wenn das der Fall ist, die dump-Datei wird geben Ihnen Anhaltspunkte, warum das abstürzt.InformationsquelleAutor der Antwort Brian Agnew
Dies kann auftreten, wenn eine nicht abgefangene RuntimeException geworfen wird. Leider, junit ant-task nicht ausgeben, Ausnahme, so gibt es nicht eine einfache Möglichkeit, um die Ursache ermitteln. Sie können umgehen dies, indem Sie den Testfall aus der command-Zeile, wo die exception wird angezeigt.
In meinem Fall eine IllegalArgumentException wurde geworfen.
InformationsquelleAutor der Antwort Alex C
Ich hatte dieses problem und es stellt sich heraus, dass der Prozess war eigentlich aufrufenden System.exit(). Allerdings gab es auch einen bug in der Ameise, wo diese war, zeigt sich manchmal. Ich denke, Ant 1.7.1 hat den Fehler behoben. So stellen Sie sicher, dass Sie ausgeführt werden, die version.
InformationsquelleAutor der Antwort Francis Upton
Ich hatte genau das gleiche eine Weile zurück. Das problem ist das System.exit() aufgerufen wird, irgendwo. Es kann schwierig sein zu finden, obwohl, wie der Anruf kommen könnte, die entweder aus Ihrem code oder in einer der Bibliotheken, die Sie verwenden.
InformationsquelleAutor der Antwort triggerNZ
Habe ich mehrere junit-jar-Dateien in mein classpath. ist der ant-und der andere aus WAR. Als ich entfernt, dass der Fehler ging Weg... Ant-version, die ich verwende 1.8
InformationsquelleAutor der Antwort ankit jain
Ich mein Problem gelöst, von dem Sie folgende Umgebungsvariable einstellen:
Variable: _JAVA_OPTIONS
Wert: -Xms128m -Xmx512m
InformationsquelleAutor der Antwort ChikoFerrara
War es für uns eigentlich, dass wir durch Zufall (verwendet eine neuere version von eclipse) begonnen, Ant 1.7.x statt unserer alten ant-version, die kompatibel war mit unserem Weblogic 8.1/JDK 1.4.x-Umgebung. Wir behoben, indem Sie wieder die Ant Home im Eclipse->Windows->Einstellungen->Ant->Laufzeit unserer alten version von Ant.
Grüße
Klas
InformationsquelleAutor der Antwort KlasE
Ich vor dem problem, nach Neuinstallation einer neuen version von NetBeans auf einer externen Festplatte, Upgrade Junit zur gleichen Zeit und mit meinem alten Arbeitsbereich.
Mir die Lösung des gleichen Problems war einfach:
Fügen Sie einfach die JUnit-Bibliothek-Projekt
properties
=>Libraries
=>Compile Tests
undRun Tests
.So, in meinem Fall, war es nur eine fehlende Bibliothek oder einer JUnit-version-Konflikt.
InformationsquelleAutor der Antwort JPS
In meinem Fall ist es eine nicht abgefangene Ausnahme in einem statischen Initialisierer/Methode/block innerhalb einer Klasse.
Speziell hatte ich eine Klasse aufrufen einer statischen Methode in einer anderen Klasse, und es war das auslösen einer NumberFormatException.
BTW hinzufügen "showoutput=true", um die Aufgabe in build.xml nicht helfen, zu beheben. Da der static-block ist eines der ersten Dinge ausgeführt, die JVM wurde die Sprengung vor der Ausgabe überhaupt nichts.
InformationsquelleAutor der Antwort Dan Haynes
Hatte ich dieses Problem auch. Ändern der junit-task aus:
zu
fixiert es für mich. Verstehe ich nicht in diesem Bereich des ant-obwohl oder warum dies zu tun würde es zu beheben. In meinem Fall war es ein Fehler in "BeforeFirstTest" und ich denke, es barfs, weil von zwei ant-Dateien in meinem classpath (was ist wahrscheinlich, was ich tun sollte fix)
Ich denke das Thema ist mit einer der Versionen von ant:
http://track.pmease.com/browse/QB-500;jsessionid=C1CF6999CBBDB5097A9CFCF4A11AF6C0?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
ETA: ich denke, batchtest="no" verändert tatsächlich die Klassenpfad-und damit auch die Ergebnisse bei Ausschluss von meinen unerwünschten ant jar.
InformationsquelleAutor der Antwort andrea
Ich Stand vor dem gleichen Problem. Das problem mit byte-code-Generierung mit mocking die Config-Klasse, änderten Wir den import zu
und es funktionierte.
InformationsquelleAutor der Antwort user1164061
In meinem Fall, den classpath, dass meine tests liefen auf überschreitung der maximalen Länge von dem, was erlaubt war, die vom Betriebssystem für eine Umgebungsvariable (aka die Linux-Classpath zu Langform).
Die Lösung war die Schaffung einer Wegfindung jar. Vereinfachte Schritte:
Verwenden jar (oder IDE), um eine jar-Datei Ihres Projekts, nennen wir es MyProject.jar
Stellen Sie eine Datei namens Manifest.txt mit dem text
Dann, in deinem build-tool, führen Sie Ihre test-Richtlinie gegen die Wegfindung Glas selbst (nicht mischen-in anderen Klassen oder jar-Dateien). Dann konnte ich meine tests ohne Ausnahme.
InformationsquelleAutor der Antwort Jason D
Fügte ich
TestNG
Bibliothek der Test-Bibliotheken und es wurde das Problem behoben.InformationsquelleAutor der Antwort EmbarkPro