I can run tests in a single module project, but as soon as I have multiple modules (e.g. opening up https://github.com/spring-cloud/spring-cloud-function/tree/master/spring-cloud-function-samples since that was what I was working on), I get this:
Error occured: Exception in thread "main" Error occured: java.lang.NoClassDefFoundError: org/junit/runner/JUnitCore
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
Error occured: at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at com.microsoft.java.test.runner.JUnitLauncher.main(JUnitLauncher.java:20)
Caused by: java.lang.ClassNotFoundException: org.junit.runner.JUnitCore
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 13 more
I'm having this issue as well, I have creating a fresh project using Maven, and trying to use this extension I get the above error.
Running mvn test works fine.
@dsyer @pandabrand thanks a lot for the feedback! I can repro it and it is class path resolution issue. I'm Working on it.
accidentally closed it when merging pr..
The issue has been fixed in 0.2.0 release. So I'm gonna close it. You are free to reopen it if it still doesn't work.
Using 0.2.0 I still get the same errors:
Error occured: Exception in thread "main" Error occured: java.lang.NoClassDefFoundError: org/junit/runner/JUnitCore
Error occured: at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:760)Error occured:
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
Error occured: at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
Error occured: at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at com.microsoft.java.test.runner.JUnitLauncher.main(JUnitLauncher.java:20)
Caused by: java.lang.ClassNotFoundException: org.junit.runner.JUnitCore
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
Error occured: at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 13 more
Using 0.2.0 as well also getting the same error
Error occured: Exception in thread "main" Error occured: java.lang.NoClassDefFoundError: org/junit/runner/JUnitCore
Error occured: at java.lang.ClassLoader.defineClass1(Native Method)
Error occured: at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)Error occured:
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
Error occured: at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at com.microsoft.java.test.runner.JUnitLauncher.main(JUnitLauncher.java:20)
Error occured: Caused by: java.lang.ClassNotFoundException: org.junit.runner.JUnitCore
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
Error occured: ... 13 more
Maybe also good to mention that i use gradle, and when i run gradle test i get BUILD_SUCCESFUL
here is my build.gradle
`
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath ("org.junit.platform:junit-platform-gradle-plugin:1.0.1")
}
}
apply plugin: "java"
apply plugin: "org.junit.platform.gradle.plugin"
repositories{
jcenter()
}
dependencies{
testCompile("org.junit.jupiter:junit-jupiter-api:5.0.1")
testRuntime(
"org.junit.jupiter:junit-jupiter-engine:5.0.1",
"org.junit.vintage:junit-vintage-engine:4.12.1",
"org.junit.platform:junit-platform-launcher:1.0.1",
"org.junit.platform:junit-platform-runner:1.0.1"
)
}
sourceSets {
main.java.srcDir "src"
test.java.srcDir "test"
}
`
I was able to resolve this problem in v0.3.0 by installing the Java IDE Pack extension. I can now Run Test and Debug Test directly in VSCode and view the Test Report.
I'm also having this issue on v0.3.0 and could not replicate @coderfin resoultion
Error occurred: Exception in thread "main" Error occurred: java.lang.NoClassDefFoundError: org/junit/runner/JUnitCoreError occurred:
Error occurred: at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1007)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:801)
Error occurred: at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:699)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:622)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:580)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
at com.microsoft.java.test.runner.JUnitLauncher.main(JUnitLauncher.java:20)
Caused by: java.lang.ClassNotFoundException: org.junit.runner.JUnitCoreError occurred:
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
... 10 more
seems some class path isn't successfully resolved, could someone help share a piece of code to repro the error?
BTW, which version of Junit are you using?
I'm running into the same issue. I downloaded the junit-4.12.jar and hamcrest-core-1.3.jar and placed them in my project's folder as per the JUnit installation guide, but the classpath generated by this extension that gets used in the command to run the tests seems not to be able to see jar files in the folder. I suggest apending ./* to the generated classpath.
@vasilescur which kind of project management are you using? maven, gradle or eclipse projects, .etc? could you check whether your project'classpath contains junit-4.12.jar?
@ansyral That solved my issue. I wasn't using any of those, just placing classes in a folder. I've (learned and) switched to using Gradle, and everything works fine now.
@Stiixxy are you using Junit5? We haven't supported it yet, we'll work on it soon.
I had the same issue.
My test were in the default package. It appear to have cleaned its self up when I put the test in a package and then restarted VSCode.
Maybe it has something to do with tests in the default package.
I added another test back in the default package
import static org.junit.Assert.assertNotNull;
import org.junit.Test;
public class TestFoo {
@Test
public void test() {
assertNotNull(new String());
}
}
and now I'm getting this:
@@<{"name":"testReporterAttached"}>
Error occurred: No test found to run.@@<{"name":"testReporterAttached"}>
and when I run mvn test it doesn't even run as a test.
@stejsoftware sorry I couldn't repro using your code. Could you check whether your pom.xml configure junit correctly?
Make sure you open the root folder of the project. If you open an individual file or a sub folder in VS code then you will see this error.
i have similar issues for some of the test cases in the project:
_{"userTag":false,"level":"info","message":"SLF4J: Found binding in [jar:file:/Users/jaygheewala/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]\nSLF4J: Found binding in [jar:file:/Users/jaygheewala/.m2/repository/org/slf4j/slf4j-simple/1.7.5/slf4j-simple-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]\nSLF4J: Found binding in [jar:file:/Users/jaygheewala/.m2/repository/ch/qos/logback/logback-classic/1.0.13/logback-classic-1.0.13.jar!/org/slf4j/impl/StaticLoggerBinder.class]\nSLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.\n","timestamp":"2018-10-20T17:14:53.403Z"}
{"userTag":false,"level":"error","message":"Error occurred: {\"name\":\"error\", \"attributes\":{\"message\":\"Failed to launch Junit\", \"details\":\"java.lang.NoSuchMethodError: ch.qos.logback.core.util.Loader.getResources(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/util/Set;\n\tat ch.qos.logback.classic.util.ContextInitializer.multiplicityWarning(ContextInitializer.java:183)\n\tat ch.qos.logback.classic.util.ContextInitializer.statusOnResourceSearch(ContextInitializer.java:175)\n\tat ch.qos.logback.classic.util.ContextInitializer.getResource(ContextInitializer.java:141)\n\tat ch.qos.logback.classic.util.ContextInitializer.findURLOfDefaultConfigurationFile(ContextInitializer.java:125)\n\tat ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:148)\n\tat org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:84)\n\tat org.slf4j.impl.StaticLoggerBinder.
{"userTag":false,"level":"info","message":"@@
mvn test
intellije test
eclipse test
all of them seems to handle junit test cases properly with pom.xml config. So not sure what's wrong in the vscode.
@jgheewala Did you still see this errors in the latest Test Runner extension?
Closing this issue since it's inactive for a long time.
Most helpful comment
Using 0.2.0 I still get the same errors:
Error occured: Exception in thread "main" Error occured: java.lang.NoClassDefFoundError: org/junit/runner/JUnitCore Error occured: at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:760)Error occured: at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) at java.net.URLClassLoader.access$100(URLClassLoader.java:73) at java.net.URLClassLoader$1.run(URLClassLoader.java:368) Error occured: at java.net.URLClassLoader$1.run(URLClassLoader.java:362) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:361) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) Error occured: at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at com.microsoft.java.test.runner.JUnitLauncher.main(JUnitLauncher.java:20) Caused by: java.lang.ClassNotFoundException: org.junit.runner.JUnitCore at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) Error occured: at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 13 more