7 Stimmen

Laufzeitfehler beim Testen mit JUnit

Ich bin ziemlich wackelig mit Unit-Tests, aber ich habe einen Teil meines Codes, den ich wirklich brauche, um sicher zu sein, seine Konsistenz. Ich versuche, Daten von einem Objekt zu einer externen Datei mit JSON zu übertragen, so dass ich sicherstellen möchte, dass, wenn ich die Daten aus der externen Datei ziehen, es das gleiche sein wird.

Ich verwende einen Unit-Test, um diese Gleichheit zu behaupten, aber ich stoße auf ein Problem, das ich nicht sicher bin, wie zu behandeln. Es ist ein Laufzeitfehler und dies ist, was die Konsole liest.

A fatal error has been detected by the Java Runtime Environment:

Internal Error (classFileParser.cpp:3494), pid=5032, tid=7048
Error: ShouldNotReachHere()

JRE version: 6.0_25-b06
Java VM: Java HotSpot(TM) 64-Bit Server VM (20.0-b11 mixed mode windows-amd64 compressed oops)
An error report file with more information is saved as:
L:\fliphouseWorkspace\Luas\hs_err_pid5032.log

If you would like to submit a bug report, please visit:
http://java.sun.com/webapps/bugreport/crash.jsp

Für jede Hilfe wäre ich dankbar, danke.

1 Stimmen

0 Stimmen

@Tomasz Blachowicz hat Recht. Überprüfen Sie, ob Android. die meisten Android ist immer solche ERROR

0 Stimmen

3voto

Stephen C Punkte 665668

Wenn Sie Eclipse für die Entwicklung einer Android-App verwenden, gibt es eine weitere mögliche Erklärung: http://independentlyemployed.co.uk/2010/11/17/worked-out-why/ . (Offenbar kann dies auch auftreten, wenn Sie versuchen/versucht haben, Android und normales Java im selben Eclipse-Arbeitsbereich zu entwickeln; siehe https://stackoverflow.com/a/3223929/139985 )

Wenn nicht, dann denke ich, dass das generelle Problem darin besteht, dass die JVM beim Versuch, eine Klassendatei zu parsen (wahrscheinlich zu laden), abstürzt. Die wahrscheinlichste Ursache scheint zu sein, dass die Klassendatei in irgendeiner Weise verstümmelt ist. Wenn das der Fall ist, handelt es sich nicht um einen JVM-Fehler. Die JVM hat möglicherweise keine andere Wahl, als diese Art von Problem über einen Absturzbericht zu melden, da es während des JVM-Bootstrappings auftreten kann.


Hier ist ein Eintrag in der Java Bug Database, der dies berichtet: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7032077 . Leider wurde sie als nicht reproduzierbar geschlossen.

1 Stimmen

Wenn es eine fehlerhafte Klassendatei gibt, sollte die JVM eine richtige Exception ausspucken, die sich darüber beschwert, und nicht auf diese Weise umkippen, also ist es wohl immer noch ein Fehler.

0 Stimmen

@artbristol - Das habe ich in den letzten 2 Sätzen meiner Antwort behandelt.

2voto

Jeff Foster Punkte 41930

Das hat nichts mit Ihrem Code zu tun, das sieht für mich wie ein echter JVM-Fehler aus. Die JVM sollte niemals auf diese Weise abstürzen. Reichen Sie einen Fehlerbericht bei Oracle ein.

0 Stimmen

Okay, vielen Dank. Ich habe mir die Protokolldatei für weitere Details angesehen und sie ist ziemlich detailliert, aber verwirrend.

2voto

kensen john Punkte 5233

Ich gehe davon aus, dass Sie Android verwenden, denn die meisten Leute scheinen Probleme mit Android und Junit zu haben.
Ich habe diesen Blogeintrag gefunden, in dem dieses Thema in den Kommentaren diskutiert wird. In einem der Kommentare wird dieser spezielle Fehler erwähnt. Sie könnten hier etwas Hilfe finden. http://dtmilano.blogspot.com/2008/11/Android-testing-on-Android-platform.html

Eine der vorgeschlagenen Optionen ist das Löschen der Verzeichnisse "bin" und "gen" und ein erneuter Versuch. ShouldNotReachhere classFileParser Android

0 Stimmen

Nein, da steht, welche JVM er verwendet, und das ist nicht die von Android.

1 Stimmen

@Tnem, ok, ich muss das noch einmal bearbeiten, muss einen Kaffee trinken. Sieht so aus, als ob JUNIT die JVM benutzt

0 Stimmen

Volltreffer Ich entwickle eine Anwendung und versuche, sie zu testen. Ich bin ziemlich unerfahren in beiden Arten von Unit-Tests und habe zunächst nur versucht, in Java zu testen. Das ist wahrscheinlich ein schlechter Weg, um Android zu testen, aber ich habe nicht wirklich etwas getestet, was mit Android zu tun hat. Vielen Dank für die Antwort. Ich denke, ich werde ein Testerprojekt zum Testen auf die Beine stellen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X