Running JUnit Tests from Eclipse gives ClassNotFound Error

29,050

Solution 1

I tried everything mentioned here and in other posts. Some of the solutions that people proffered were:

  1. Change the output folder for the test
  2. Create a custom builder for the project that would run test-compile from Maven
  3. 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,

  1. 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.

  2. 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. Run configuration tab for building project

Share:
29,050
Bagira
Author by

Bagira

Learner for life.

Updated on July 05, 2022

Comments

  • Bagira
    Bagira about 2 years

    I am trying to run JUnit tests from Eclipse but while running these tests, I am getting ClassNotFound Exception

    Complete 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 is of.

    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
    Ren about 11 years
    That shouldn't really make a difference?
  • Bagira
    Bagira about 11 years
    Suddenly 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
    Phil over 9 years
    Not 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
    Yves Nicolas almost 9 years
    Had 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 and mvn 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.