无法在 Eclipse Android 项目中运行 JUnit 4 测试用例

2022-09-01 07:35:41

我是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测试时,我得到以下内容:

#
# 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
#

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

谢谢


答案 1

在谷歌上搜索了答案之后,这似乎可能与Android开发工具有关。

以下是从此评论线程中获取的步骤:

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

答案 2

由于Alex Spurling的说明不再适用于Eclipse Juno和最新的Android SDK,因此给出另一种选择可能会有所帮助:

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

这在小型项目中有点麻烦,但是OTOH有助于实施模块化和接口隔离。


推荐