gpt4 book ai didi

ant - 与 Ant 集成的 Junit 测试因 ClassNotFoundException 失败

转载 作者:行者123 更新时间:2023-12-04 14:19:36 24 4
gpt4 key购买 nike

我的项目上有 JUnit 测试,可以在 Eclipse 中正确运行。

所以,现在我尝试将这些测试与 ant 任务集成。为此,我制作了以下 Ant 脚本:

<path id="classpath-test">
<pathelement path="." />
<pathelement path="${classes.home}" />
<fileset dir="${lib.home}" includes="*.jar" />
<fileset dir="${libtest.home}" includes="*.jar" />
</path>

<target name="compile" ... > // compiles src code of the project

<target name="compile-tests" depends="compile">
<javac srcdir="${test.home}"
destdir="${testclasses.home}"
target="1.5"
source="1.5"
debug="true"
>
<classpath refid="classpath-test" />
</javac>

<copy todir="${testclasses.home}">
<fileset dir="${test.home}">
<exclude name="**/*.java"/>
</fileset>
</copy>
</target>

<target name="unit-test" depends="compile-tests">
<junit printsummary="false" fork="off" haltonfailure="true">
<classpath refid="classpath-test" />

<formatter type="brief" usefile="false" />

<test name="com.test.MyTest" />

<!--<batchtest todir="${reports.dir}" >
<fileset dir="${testclasses.home}" >
<exclude name="**/AllTests*"/>
<include name="**/*Test.class" />
</fileset>
</batchtest>-->
</junit>
</target>

目录 ${libtest.hom} 包含 junit-4.8.1.jar 和 hamcrest-core-1.1.jar。

当我启动以下命令时:ant unit-test,MyTest 的执行失败,输出如下:
unit-test:
[junit] Testsuite: com.test.MyTest
[junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
[junit]
[junit] Null Test: Caused an ERROR
[junit] com.test.MyTest
[junit] java.lang.ClassNotFoundException: com.test.MyTest
[junit] at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
[junit] at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)
[junit] at java.lang.Class.forName0(Native Method)
[junit] at java.lang.Class.forName(Class.java:247)
[junit]
[junit]

这很奇怪,因为 com.test.MyTest 在 ant 脚本中为我的任务 junit 指向的类路径中很好。有人会有解决这个问题的想法吗?

谢谢你的帮助。

西尔万。

最佳答案

${testclasses.home}目录不在 <junit> 的类路径上任务。

我认为这是 com.test.MyTest 的类文件生活。

这是修改后的单元测试目标:

<target name="unit-test" depends="compile-tests">
<junit printsummary="false" fork="off" haltonfailure="true">
<classpath>
<path refid="classpath-test"/>
<fileset dir="${testclasses.home}"/>
</classpath>

<formatter type="brief" usefile="false" />

<test name="com.test.MyTest" />

<!--<batchtest todir="${reports.dir}" >
<fileset dir="${testclasses.home}" >
<exclude name="**/AllTests*"/>
<include name="**/*Test.class" />
</fileset>
</batchtest>-->
</junit>
</target>

关于ant - 与 Ant 集成的 Junit 测试因 ClassNotFoundException 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6984478/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com