【问题标题】:Can't run JUnit 4 test case in Eclipse Android project无法在 Eclipse Android 项目中运行 JUnit 4 测试用例
【发布时间】:2010-01-31 15:13:01
【问题描述】:

我是 Java 新手,正在尝试对我正在编写的类运行单元测试。 Eclipse (3.5) 为我创建了单元测试类并将 Junit4 添加到我的类路径中。

我的班级:

public class DistanceUtil 
{

public static double metersToMiles( double meters ) 
{
    return 0;
}
public static double metersToKilometers( double meters ) 
{
    return 0;
}

}

我的单元测试:

public class DistanceUtilTest {

@Test
public final void testMetersToMiles() {
    fail("Not yet implemented"); // TODO
}

@Test
public final void testMetersToKilometers() {
    fail("Not yet implemented"); // TODO
}

}

当我右键单击单元测试并选择作为 Junit Test 运行时,我得到以下信息:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (classFileParser.cpp:3075), pid=5564, tid=4940
#  Error: ShouldNotReachHere()
#
# JRE version: 6.0_17-b04
# Java VM: Java HotSpot(TM) Client VM (14.3-b01 mixed mode windows-x86 )
# An error report file with more information is saved as:
# C:\Users\Giles Roadnight\workspaceAndroid\Cycloid\hs_err_pid5564.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#

有人知道我该如何解决这个问题吗?

谢谢

【问题讨论】:

    标签: java android eclipse junit4


    【解决方案1】:

    在 Google 上搜索过答案,这似乎与 Android 开发工具有关。

    以下是从this comment 线程采取的步骤:

    1. 项目右键->运行->运行配置
    2. 选择您的 Junit 项目
    3. 转到类路径选项卡
    4. 删除 Android 框架条目
    5. 选择引导条目
    6. 点击高级
    7. 选择添加库
    8. 好的
    9. 选择“JRE 系统库”
    10. 下一步
    11. 完成
    12. 您还需要添加 JUnit 库,因此请按照步骤 5 到 11 并选择“Junit”而不是“JRE System Library”
    13. 您现在可以以 Junit 身份运行您的项目。

    【讨论】:

    • 作为pointed out by Z,出现这种情况的原因似乎是因为项目正在使用 Dalvik 字节码的 JVM 上运行——所以运行时当然会阻塞。
    【解决方案2】:

    由于 Alex Spurling 的说明不再适用于 Eclipse Juno 和最新的 Android SDK,因此提供另一种替代方法可能会很有用:

    1. 创建一个单独的普通 Java 库项目,其中包含所有不依赖于 Android 平台的代码。
    2. 正常编写 JUnit 测试。
    3. 将该项目作为库引用包含到您的 Android 项目中。
    4. 使用 SLF4J 或其他高级库进行日志记录。

    这对小型项目来说有点麻烦,但 OTOH 它有助于强制执行模块化和接口隔离。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-26
      • 2015-04-01
      • 1970-01-01
      • 2010-09-30
      • 1970-01-01
      • 2017-08-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多