Eclipse RCP项目通过ANT执行JUnit测试类路径配置问题咨询
问题根因
- 类路径未包含业务代码、测试代码编译后的
.class文件输出目录,JUnit执行时无法找到对应的测试类和业务类 - 缺失Eclipse RCP运行所需的OSGi插件依赖包、项目自定义依赖包
- 若未提前执行编译逻辑直接运行JUnit目标,编译输出目录为空也会触发该报错
修正步骤
1. 补充路径属性定义
在build.xml的全局属性部分新增以下配置,替换为你本地实际路径:
<!-- 业务插件、测试插件根路径 --> <property name="main.plugin" location="${workspace}/com.project.b" /> <property name="test.plugin" location="${workspace}/com.project.b.test" /> <!-- 代码编译输出目录,Eclipse默认输出到bin文件夹,若自定义了输出路径请替换 --> <property name="main.bin" location="${main.plugin}/bin" /> <property name="test.bin" location="${test.plugin}/bin" /> <!-- Eclipse RCP目标平台插件目录,即你本地Kepler版本的安装路径下的plugins文件夹 --> <property name="rcp.plugins" location="本地Eclipse安装路径/plugins" />
2. 给JUnit目标增加编译依赖
确保跑测试前所有代码已编译完成,假设你已有compile编译目标,修改target定义:
<target name="junit" depends="compile" description="Run JUnits">
3. 修正JUnit类路径配置
替换原有classpath部分:
<junit printsummary="on" fork="yes"> <!-- 可选:依赖包过多时增加JVM内存参数 --> <jvmarg value="-Xmx1024m" /> <classpath> <!-- 业务代码、测试代码编译输出目录 --> <pathelement location="${main.bin}" /> <pathelement location="${test.bin}" /> <!-- JUnit依赖 --> <pathelement location="...\..\Ant\junit-4.13.2.jar" /> <!-- RCP运行所需所有插件依赖 --> <fileset dir="${rcp.plugins}" includes="**/*.jar" /> <!-- 若项目有自定义lib目录放第三方依赖,也按需引入 --> <fileset dir="${main.plugin}/lib" includes="**/*.jar" /> <fileset dir="${test.plugin}/lib" includes="**/*.jar" /> </classpath> <!-- 其余配置保持不变,可优化测试文件扫描范围 --> <formatter type="xml" /> <batchtest fork="yes" todir="${reports}"> <fileset dir="${test.plugin}/src"> <include name="**/*Test.java" /> </fileset> </batchtest> </junit>
内容的提问来源于stack exchange,提问作者JoGe
相关产品推荐
相关产品推荐

