Eclipse升级至4.8后执行测试报错找不到org.eclipse.test.coretestapplication咨询
问题原因
Eclipse从3.x升级到4.x版本后,测试框架的部署、注册逻辑和旧版本不兼容,你遇到的问题均由版本适配错误导致:
- 3.x版本的测试框架硬编码了插件版本路径,4.8版本的
org.eclipse.test插件版本号已经升级到3.4.100,你原build.xml中写死的org.eclipse.test_3.2.0路径自然找不到对应的library.xml文件 - 光存在CoreTestApplication类文件不代表应用会被注册,Eclipse基于OSGi运行,只有插件被正常加载、激活后,其声明的
org.eclipse.core.runtime.applications扩展点才会被注册到系统中,你遇到的应用找不到报错就是因为org.eclipse.test插件没有被OSGi正常加载
解决方案
- 先修正测试依赖部署:不要单独复制library.xml文件,将
eclipse-Automated-Tests-4.8.zip解压后的plugins、features目录下的所有内容,完整合并到你用于运行测试的Eclipse的对应目录下,确保所有测试相关插件及其依赖都完整安装 - 修改build.xml中library-file的路径配置,不要硬编码插件版本号,改为动态匹配:
<!-- 先动态查找org.eclipse.test插件的路径 --> <fileset id="test.plugin" dir="${eclipse-home}/plugins" includes="org.eclipse.test_*"/> <property name="test.plugin.path" toString="${test.plugin}"/> <property name="library-file" value="${test.plugin.path}/library.xml"/>
- 在调用core-test的ant任务中新增参数,强制OSGi启动时加载测试插件,避免扩展点未注册:
<ant target="core-test" antfile="${library-file}" dir="${eclipse-home}"> <property name="plugin-name" value="com.gansu.alltests" /> <property name="classname" value="com.gansu.alltests.AllTests" /> <!-- 新增以下两个参数 --> <property name="osgi.bundles" value="org.eclipse.test@start" /> <property name="org.eclipse.update.install.features" value="true" /> </ant>
- 如果仍有报错,可在测试启动参数中添加
-consoleLog,查看OSGi的详细加载日志,排查是否存在org.eclipse.test插件的依赖缺失导致插件未激活。
内容的提问来源于stack exchange,提问作者abuka123
相关产品推荐
相关产品推荐

