当我运行应该执行JUnit测试的目标java.lang.ClassNotFoundException时,我得到一个TranslatorWorkflow。我正在运行目标为build.xmlbuild 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>

07-24 14:55