【问题标题】:Runtime error when JUnit testingJUnit 测试时的运行时错误
【发布时间】:2011-06-03 12:18:35
【问题描述】:

我对单元测试很不满意,但我有一部分代码我真的需要确定它的一致性。我正在尝试使用 JSON 将数据从对象传输到外部文件,因此我想确保当我从外部文件中提取数据时它是相同的。

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

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

任何帮助将不胜感激。

【问题讨论】:

标签: java unit-testing jvm


【解决方案1】:

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

如果不是,那么我认为一般的问题是 JVM 在尝试解析(可能加载)类文件时崩溃了。最可能的原因似乎是类文件以某种方式损坏。如果是这样,那么这不是 JVM 错误。 JVM 可能别无选择,只能通过崩溃报告报告此类问题,因为它可能发生在 JVM 引导期间。


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

【讨论】:

  • 如果有一个损坏的类文件,JVM 应该发出一个适当的异常来抱怨它,而不是这样摔倒,所以它仍然是一个错误。
  • @artbristol - 我已经在回答的最后两句话中提到了这一点。
【解决方案2】:

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

【讨论】:

  • 好的,非常感谢。我确实查看了日志文件以获取更多详细信息,它非常详细但令人困惑。
【解决方案3】:

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

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

【讨论】:

  • 嗯,不,它说明他使用的是哪个 JVM,不是 android 的。
  • @Tnem,好的,我必须再编辑一次,喝点咖啡。看起来 JUNIT 使用了 JVM
  • 死了我正在开发一个应用程序并尝试对其进行测试。我对这两种单元测试都很缺乏经验,只是先尝试​​用 Java 进行测试。这可能是测试 Android 的一种糟糕方式,但我并没有真正测试任何与 Android 相关的东西。谢谢回复。我想我会得到一个测试项目来进行测试。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-01
  • 2020-10-17
  • 2013-05-29
  • 2018-08-05
  • 2011-02-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多