I have set JUnit classpaths in my project:
C:\Program Files\jUnit\junit-4.10.jar
C:\Program Files\Java\jre7\lib\rt.jar
C:\Program Files\robocode\libs\robocode.jar
D:\src\git\robocode
My files are D:\src\git\robocode\sharkodlak\robocode\trigonometry\Vector.class and
D:\src\git\robocode\sharkodlak\robocode\tests\trigonometry\VectorTest.class. My package
is sharkodlak.robocode.trigonometry for Vector and sharkodlak.robocode.tests.trigonometry
for VectorTest.
When I click on Select test class, I pick VectorTest - sharkodlak.robocode.tests.trigonometry.
In left top drop down box, sharkodlak.robocode.tests.trigonometry.VectorTest is filled.
Then I click on Run Tests and I get following stack trace:
java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at org.gjt.sp.jedit.JARClassLoader._loadClass(JARClassLoader.java:439)
at org.gjt.sp.jedit.JARClassLoader.loadClass(JARClassLoader.java:109)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.junit.internal.builders.JUnit4Builder.runnerForClass(JUnit4Builder.java:13)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:29)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:24)
at junit.jeditui.TestRunner.runSuite(TestRunner.java:114)
at junit.jeditui.JUnitDockable$8.actionPerformed(JUnitDockable.java:471)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
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)
at org.gjt.sp.jedit.JARClassLoader.loadFromParent(JARClassLoader.java:522)
at org.gjt.sp.jedit.JARClassLoader.loadClass(JARClassLoader.java:87)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 51 more
Same error for AllTests.class.
My environment is Windows XP 32 bit, Java jdk-7u3-windows-i586, JUnit 4.10, jEdit
4.5, JUnit plugin 0.6.
When I run it from CMD, everythink is OK. You can see cmd command in AllTests.bat.
| Submitted | sharkodlak - 2012-04-19 - 06:40:54z | Assigned | kerik-sf |
|---|---|---|---|
| Priority | 5 | Category | None |
| Status | Pending | Group | None |
| Resolution | Fixed | Visibility | No |
| 2012-04-19 - 08:08:10z jarekczek |
Could you tell us, in which file you have the class org.hamcrest.SelfDescribing defined? |
|---|---|
| 2012-04-19 - 08:19:34z sharkodlak |
Class org.hamcrest.SelfDescribing isn't mine. As I found today, it's JUnit's class. |
| 2012-04-19 - 09:11:49z jarekczek |
Indeed. That's part of junit, I see it in junit-4.8.2. Javadoc does not specify "since": http://kentbeck.github.com/junit/javadoc/latest/org/hamcrest/SelfDescribing.html But the junit.jar distributed with JUnitPlugin does not contain it. I'm passing this entry to plugin's author. |
| 2012-04-22 - 14:11:40z kerik-sf |
Hi sharkodlak, the version of junit bundled in JUnit plugin didn't come with the hamcrest classes. A new version of JUnit plugin has been submitted, which fixes this problem (and comes with junit 4.10). I'll close the bug when it's available Thanks for reporting, and the fine, easy to reproduce test case. |
| 2012-04-19 - 06:40:58z sharkodlak |
sharkodlak.zip Test files |
|---|