Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Eclipse JUnit - possible causes of seeing "initializationError" in Eclipse window

I know this question is pretty general but I haven't found any hints on why this error may show up. What are possible causes of seeing initalizationError in Eclipse window? I get no useful information just a long and useless failure trace (not included here).

I am using JUnit 4.11

I have written the following code - just to see if it works:

package test;  import static org.junit.Assert.*;  import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test;  public class SimpleTest {  @BeforeClass public static void setUpBeforeClass() throws Exception { }  @AfterClass public static void tearDownAfterClass() throws Exception { }  @Test public void test() {     assertEquals(15, 15); }  } 

Edit: Sorry In Eclipse window it's called actually a "Failure trace":

java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing     at java.lang.ClassLoader.defineClass1(Native Method)   at java.lang.ClassLoader.defineClass(Unknown Source)   at java.security.SecureClassLoader.defineClass(Unknown Source)     at java.net.URLClassLoader.defineClass(Unknown Source)     at java.net.URLClassLoader.access$100(Unknown Source)  at java.net.URLClassLoader$1.run(Unknown Source)   at java.net.URLClassLoader$1.run(Unknown Source)   at java.security.AccessController.doPrivileged(Native Method)  at java.net.URLClassLoader.findClass(Unknown Source)   at java.lang.ClassLoader.loadClass(Unknown Source)     at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)  at java.lang.ClassLoader.loadClass(Unknown Source)     at org.junit.internal.builders.JUnit4Builder.runnerForClass(JUnit4Builder.java:10)     at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)     at  org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)     at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)     at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:26)     at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.<init>(JUnit4TestReference.java:33)     at org.eclipse.jdt.internal.junit4.runner.JUnit4TestClassReference.<init>(JUnit4TestClassReference.java:25)     at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:48)     at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:38)     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452)     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) Caused by: java.lang.ClassNotFoundException: org.hamcrest.SelfDescribing     at java.net.URLClassLoader$1.run(Unknown Source)     at java.net.URLClassLoader$1.run(Unknown Source)    at java.security.AccessController.doPrivileged(Native Method)  at java.net.URLClassLoader.findClass(Unknown Source)   at java.lang.ClassLoader.loadClass(Unknown Source)     at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)  at java.lang.ClassLoader.loadClass(Unknown Source)     ... 25 more 
like image 577
lixonn Avatar asked Mar 03 '13 20:03

lixonn


People also ask

Why my JUnit is not showing in Eclipse?

Click on Libraries tab. Click on Add Library button. Click on JUnit and Next button. Choose JUnit version.

How do I see JUnit results in Eclipse?

On your toolbar click Windows-->Show View-->Others. Type "Junit" without quotes. Select from list and click OK.


1 Answers

You've probably got one of two problems:

1) You're using JUnit 4.11, which doesn't include hamcrest. Add the hamcrest 1.3 library to your classpath.

2) You've got hamcrest 1.3 on your classpath, but you've got another version of either junit or hamcrest on your classpath.

For background, junit pre 4.11 included a cut down version of hamcrest 1.1. 4.11 removed these classes.

like image 52
Matthew Farwell Avatar answered Sep 27 '22 18:09

Matthew Farwell