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

时间:2010-01-31 15:13:02

标签: java android eclipse junit4

我是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
}

}

当我右键单击单元测试并选择run as 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
#

任何人都知道如何解决这个问题?

由于

2 个答案:

答案 0 :(得分:53)

在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运行。

答案 1 :(得分:1)

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

  1. 创建一个单独的普通Java库项目,其中包含所有与Android平台无依赖关系的代码。
  2. 正常编写JUnit测试。
  3. 将该项目作为库参考包含在您的Android项目中。
  4. 使用SLF4J或其他高级库进行日志记录。
  5. 小项目有点麻烦,但OTOH有助于强化模块化和界面隔离。