Running JUnit Tests from Eclipse gives ClassNotFound Error
Solution 1
I tried everything mentioned here and in other posts. Some of the solutions that people proffered were:
- Change the output folder for the test
- Create a custom builder for the project that would run test-compile from Maven
- Move the Maven dependencies higher in the Order and Export list in the project build path
There were many, many more but the one that I found to work was as follows: Close the development environment. Delete the jars used by the project from my local Maven repository. Open the IDE. Build the project. Run the test.
After hours of beating my head against my keyboard and following suggested solutions, this one worked! If that doesn't work, you can try searching for the solutions I listed above.
Solution 2
Right clicking on the project name in Eclipse and choosing "Maven --> update project" will often solve this problem.
Solution 3
I know this question has already been answered but I will still share my solution here,
Make sure the output folder of 'src/test/java' has been set to 'target/test-classes', this has been said in many other posts so I will not repeat here.
If it still does not work, it is very likely that there are errors during the compiling of your unit test classes. Go 'Window' -> open 'Error Log' view, you should be able to see the detail of the error message.
For my case, a previously downloaded dependency jar is somehow corrupted due to network problems, so just delete the jar from local repository and use 'maven' -> 'update configuration' to download it again.
Then everything works!
Solution 4
Normally when we build we check "Skip Tests" in "Run configuration tab", instead uncheck "Skip Tests" and build the project the junits should work fine. This solution worked for me.
![Bagira](https://i.stack.imgur.com/POgwB.jpg?s=256&g=1)
Comments
-
Bagira about 2 years
I am trying to run
JUnit
tests from Eclipse but while running these tests, I am gettingClassNotFound
ExceptionComplete Stack Trace follows:
java.lang.NoClassDefFoundError: of Caused by: java.lang.ClassNotFoundException: of at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) Exception in thread "main"
I have searched google for this and have found that couple of guys have faced this issue but none of them seems to be solving my issue. This can probably be due to difference in platforms
My development platform is as follows
OS: Windows XP Eclipse JUNO JUnit4 Maven2
Mean while, If I run this project using maven it runs absolutely fine.
The most strange part for me is the name of the class for which
ClassNotFound
Exception is thrown. Name of the class isof
.This is what blows me completely.
Also, what ever stack trace I have listed above, that is all what I get when I get the error nothing else.
I have been stuck in this issue for 2 days now, any help would be greatly appreciated.
-
Ren about 11 yearsThat shouldn't really make a difference?
-
Bagira about 11 yearsSuddenly tests started to work for me 4-5 days after posting the problem but i never realized, it was due to the these steps which i followed for some other reasons, it started to work.
-
Phil over 9 yearsNot sure why this was downvoted, as this worked for me, so I shall upvote it. In the "Update Maven Project" dialog, I also ensured that "Force Update of Snapshots / Release" was ticked as was "Clean Projects". Once the Maven update completed, my tests ran. Also note: I am using SpringSource ToolSuite version 3.6.2
-
Yves Nicolas almost 9 yearsHad the problem in environments where I do not consistently use the maven plugin in Eclipse : having projects imported as Maven projects in Eclipse but doing
mvn eclipse:clean
andmvn eclipse:eclipse
in terminals at the same time. Deleting the projects in eclipse and reimporting it worked for me without deleting any jars in the local maven repo.