当我运行应该执行JUnit测试的目标java.lang.ClassNotFoundException
时,我得到一个TranslatorWorkflow
。我正在运行目标为build.xml
的build TranslatorWorkflow
文件。它可以编译,但立即在JUnit测试上失败。
我的TranslatorWorkflow.class
文件在{basedir}/bin/testScripts/
中。我的类路径和目标是:
类路径:
<path id="classpath">
<fileset dir="${basedir}/lib/binaries" includes="*.jar" />
<pathelement location="${basedir}/bin/testScripts/" />
</path>
我的build.xml文件中的TranslatorWorkflow目标:
<target name="TranslatorWorkflow">
<mkdir dir="${junit.output.dir}" />
<junit fork="yes" printsummary="withOutAndErr">
<formatter type="xml" />
<test name="testScripts.TranslatorWorkflow" todir="${junit.output.dir}" />
<classpath refid="classpath" />
</junit>
</target>
我试图通过添加上面我的类路径部分中显示的pathelement行来模拟this answer to a similar question,但收到了相同的异常。我看过this question as well as it seems like the same deal。我以为有某种我很想念的东西很失踪,可惜我似乎没有得到。
最佳答案
类路径应引用${basedir}/bin
而不是${basedir}/bin/testScripts
(即应引用类目录的根目录,而不是类所在的包):
<path id="classpath">
<fileset dir="${basedir}/lib/binaries" includes="*.jar" />
<pathelement location="${basedir}/bin/" />
</path>