2011-06-03 168 views
7

我很不稳定与单元测试,但我有我的代码的一部分,我真的需要确定其一致性。我试图使用JSON将数据从对象传输到外部文件,所以我想确保何时从外部文件中提取数据,它将是相同的。运行时错误,当JUnit测试

我正在使用单元测试来断言这种平等,但我遇到了一个问题,我不知道如何处理。这是一个运行时错误,这是控制台读取的内容。

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 

任何帮助,将不胜感激谢谢。

+1

重复:[致命错误由Java运行时环境](http://stackoverflow.com/questions/2543106/fatal-error-by-java-runtime-environment) – 2011-06-03 12:35:08

+0

@Tomasz Blachowicz是正确的。检查如果android。大部分的Android都出现这样的错误 – 2011-06-03 14:41:33

+0

类似于[在eclipse中不能运行JUnit 4测试用例](http://stackoverflow.com/questions/2172152/cant-run-junit-4-test-case-in-eclipse ) – idbrii 2011-07-07 01:05:58

回答

2

这与您的代码无关,看起来像是一个真正的JVM错误。 JVM不应该像那样崩溃。使用Oracle提交错误报告。

+0

非常感谢你。我确实在日志文件中查看了更多细节,并且它非常详细但又令人困惑。 – Hugs 2011-06-03 12:47:01

2

我假设你使用的是android,因为大部分人似乎都遇到了android和junit的问题。
我发现这个博客条目,他们在评论部分讨论特定问题。 其中一条评论提到了这个特殊的错误。 你可以在这里找到一些帮助。 http://dtmilano.blogspot.com/2008/11/android-testing-on-android-platform.html

建议的选项之一是删除“bin”和“gen”目录,然后重试。 ShouldNotReachhere classFileParser ANDROID

+0

呃不,它说他正在使用哪个JVM,这不是Android的。 – Tnem 2011-06-03 12:34:42

+1

@Tnem,好的,我得再次编辑一遍,喝点咖啡。看起来像JUNIT使用JVM – 2011-06-03 12:41:21

+0

死我正在开发一个应用程序,并试图测试它。我在两种单元测试方面都很缺乏经验,并且只是首先尝试用Java进行测试。这可能是测试Android的糟糕方式,但我并没有真正测试与Android相关的任何事情。谢谢回复。我想我会得到一个测试项目去测试。 – Hugs 2011-06-03 12:44:09

3

如果您使用Eclipse开发Android应用程序,这里有另一种可能的解释:http://independentlyemployed.co.uk/2010/11/17/worked-out-why/。 (显然,如果您尝试在同一个Eclipse工作区中尝试开发Android和常规Java,也会发生这种情况;请参阅https://stackoverflow.com/a/3223929/139985

如果您不是,那么我认为一般问题是JVM正在下降而试图解析(可能加载)一个类文件。最可能的原因似乎是类文件以某种方式被破坏。如果是这种情况,那么这不是JVM的错误。 JVM可能别无选择,只能通过崩溃报告报告这类问题,因为它可能发生在JVM引导过程中。


这是Java Bug Database中的一个条目,它报告了这一点:http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7032077。不幸的是,它已被关闭,因为不可重现。

+1

如果有一个受到破坏的类文件,JVM应该发出一个抱怨它的恰当的异常,而不是以这种方式崩溃,所以它可以说仍然是一个错误。 – artbristol 2011-06-03 13:42:32

+0

@artbristol - 我在回答的最后2句话中已经介绍了这一点。 – 2011-06-03 15:38:23