有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法在eclipse中运行junit测试,ClassNotFoundException:org。日食jdt。内部的朱尼特。跑步者RemoteTestRunner

当我试图在eclipse中对使用gradle创建的项目运行junit测试时,我在eclipse控制台中遇到以下错误

Error: Could not find or load main class org.eclipse.jdt.internal.junit.runner.RemoteTestRunner
Caused by: java.lang.ClassNotFoundException: org.eclipse.jdt.internal.junit.runner.RemoteTestRunner

如果我使用

gradle test

它很好用

我还注意到,如果删除以下两个依赖项:

testImplementation group: 'org.apache.tomee', name: 'openejb-cxf-rs', version: '8.0.0'
testImplementation group: 'org.apache.tomee', name: 'arquillian-tomee-embedded', version: '8.0.0'

这些测试可以在Eclipse中启动。显然,由于缺少依赖项,测试在某个时候会失败

看起来这是Eclipse中发生的某种奇怪的冲突。此外,在12月的Eclipse更新之前,它运行良好

为确保完整性,请参见以下版本:

  • gradle 6.0.1
  • 日食2019-12(4.14.0)
  • Jdk 11
  • Junit 4.12

今天,我还尝试安装一个较旧版本的Eclipse(2019-09),在那里,使用相同的设置,我可以运行测试

我还注意到了以下几点。如果我去跑步->;运行配置,选择我的测试运行程序和“显示命令行”,我注意到当事情不起作用时,类路径被写入一个文件,而当它起作用时,它只是作为命令行参数写入

因此,以下方法不起作用:

C:\Program Files\Java\jdk-11.0.4\bin\javaw.exe -ea -Dfile.encoding=Cp1252 "@C:\projects\provisioning-service\provisioning-service-resource\.temp-ExampleTest-classpath-arg-1578480407549.txt" org.eclipse.jdt.internal.junit.runner.RemoteTestRunner -version 3 -port 58388 -testLoaderClass org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader -loaderpluginname org.eclipse.jdt.junit4.runtime -classNames com.xelion.provisioning.resource.ExampleTest

以下是

C:\Program Files\Java\jdk-11.0.4\bin\javaw.exe -ea -Dfile.encoding=Cp1252 -classpath "C:\projects\provisioning-service\provisioning-service-resource\target\bin;...manymorehere" org.eclipse.jdt.internal.junit.runner.RemoteTestRunner -version 3 -port 58412 -testLoaderClass org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader -loaderpluginname org.eclipse.jdt.junit4.runtime -classNames com.xelion.provisioning.resource.ExampleTest

所以主要的区别似乎是,在第一种情况下,类路径是从文件中计算出来的

C:\projects\provisioning-service\provisioning-service-resource\.temp-ExampleTest-classpath-arg-1578480407549.txt

第二种情况是写出来的

-classpath "C:\projects\provisioning-service\provisioning-service-resource\target\bin;...

共 (1) 个答案