问题
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
回答1:
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:
- Right click on the project -> run -> run configuration
- Select your Junit project
- Go to the classpath tab
- remove the Android framework entry
- select bootstrap entries
- click on advanced
- select Add Library
- Ok
- Chose "JRE System Library"
- Next
- finish
- You need to also add the JUnit library so follow the steps 5 to 11 and select the "Junit" instead of "JRE System Library"
- You can now run your project as Junit.
回答2:
Since Alex Spurling's instructions are no longer valid for Eclipse Juno and the latest Android SDK, it may be useful to give another alternative:
- Create a separate ordinary Java library project that houses all the code that does not have dependencies to the Android platform.
- Write JUnit tests normally.
- Include that project to your Android project as a library reference.
- Use SLF4J or other high level library for logging.
It's a bit of a hassle on small projects, but OTOH it helps to enforce modularity and interface segregation.
来源:https://stackoverflow.com/questions/2172152/cant-run-junit-4-test-case-in-eclipse-android-project