当我尝试在使用gradle创建的项目中的eclipse中运行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中发生的某种奇怪的冲突。同样,在Eclipse的十二月更新之前,它运行良好。
为完整起见,此处的版本:
今天我还尝试安装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;...
答案 0 :(得分:3)
看起来像Eclipse错误,请参见此处了解详细信息
https://bugs.eclipse.org/bugs/show_bug.cgi?id=558495
我添加了以下下载侧
https://download.eclipse.org/eclipse/updates/4.15-I-builds/I20200105-1800/
并更新了“ Eclipse Java开发工具”
这解决了问题。