0

I am facing below error when running my Junit test class:

I have added Junit and powermock dependencies in build path. Junit - 4.12 Powermock - 2.0.0

If I had explicitly junit from Add library and selecting Junit, then it works but I dont want to do that way as I already have added junit as dependency in my build.gradle file and junit jar is visible also under "Project and External dependencies"

Kindly let know what I am missing here ?

java.lang.NoClassDefFoundError: org/junit/runner/manipulation/Filter
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadTestLoaderClass(RemoteTestRunner.java:320)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createRawTestLoader(RemoteTestRunner.java:310)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createLoader(RemoteTestRunner.java:305)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.defaultInit(RemoteTestRunner.java:283)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.init(RemoteTestRunner.java:207)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:191)
Caused by: java.lang.ClassNotFoundException: org.junit.runner.manipulation.Filter
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 8 more

My build file containing junit dependencies:

def versionPowermock = "2.0.0"

dependencies {
    .....
    testImplementation 'junit:junit:4.12'
    testCompile "org.powermock:powermock-module-junit4:${versionPowermock}"
    testCompile "org.powermock:powermock-api-mockito2:${versionPowermock}"
    ....

Sahil
  • 53
  • 8
  • Can You post Your build.gradle file? at least lines where You set junit and powermock? – zolv May 07 '19 at 14:46
  • def versionPowermock = "2.0.0" dependencies { testImplementation 'junit:junit:4.12' testCompile "org.powermock:powermock-module-junit4:${versionPowermock}" testCompile "org.powermock:powermock-api-mockito2:${versionPowermock}" – Sahil May 07 '19 at 14:46
  • Can please check https://stackoverflow.com/a/44493379/658801 so maybe it has something to do with transitivity? – zolv May 07 '19 at 14:49
  • Other idea: where is Your test class located? If it is in `src/main/java` it may give this error when You run Your app (as there is no junit and powermock during runtime). It should be in `src/test/java` – zolv May 07 '19 at 14:51
  • I tried testImplementation also as below: testImplementation "org.powermock:powermock-module-junit4:${versionPowermock}" testImplementation "org.powermock:powermock-api-mockito2:${versionPowermock}" But same error. Also my test classes are under src/test/java only – Sahil May 07 '19 at 14:55
  • Never put more information into comments, always edit your question to make sure that a reader gets all relevant aspects right there – GhostCat May 13 '19 at 07:25

0 Answers0