Can't run JUnit 4 test case in Eclipse Android project

Roaders picture Roaders · Jan 31, 2010 · Viewed 10.5k times · Source

I am new to Java and am trying to run a unit test on a class I am writing. Eclipse (3.5) created the unit test class for me and added Junit4 to my class path.

My Class:

public class DistanceUtil 
{

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

}

My unit test:

public class DistanceUtilTest {

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

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

}

When I right click on the unit test and select run as Junit Test I get the following:

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

Anyone got an idea how I can fix this?

Thanks

Answer

Alex Spurling picture Alex Spurling · Jan 31, 2010

Having searched Google for an answer, this looks like it might have something to do with Android development tools.

Below are steps taken from this comment thread:

  1. Right click on the project -> run -> run configuration
  2. Select your Junit project
  3. Go to the classpath tab
  4. remove the Android framework entry
  5. select bootstrap entries
  6. click on advanced
  7. select Add Library
  8. Ok
  9. Chose "JRE System Library"
  10. Next
  11. finish
  12. You need to also add the JUnit library so follow the steps 5 to 11 and select the "Junit" instead of "JRE System Library"
  13. You can now run your project as Junit.