Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Junit测试不会使用ant运行_Java_Ant_Junit - Fatal编程技术网

Java Junit测试不会使用ant运行

Java Junit测试不会使用ant运行,java,ant,junit,Java,Ant,Junit,我已经能够使用ant成功编译和运行这个项目。但是当我尝试运行测试文件时,它给了我一个奇怪的引用。/lib/junit-4.11.jar找不到。我可能在refid中做了一些错误的事情,我必须在junit任务中提到。请指出错误 <target name="clean"> <delete dir="build"/> </target> <target name="compile"> <mkdir dir="build/classe

我已经能够使用ant成功编译和运行这个项目。但是当我尝试运行测试文件时,它给了我一个奇怪的引用。/lib/junit-4.11.jar找不到。我可能在refid中做了一些错误的事情,我必须在junit任务中提到。请指出错误

<target name="clean">
    <delete dir="build"/>
</target>

<target name="compile">
    <mkdir dir="build/classes"/>
    <javac srcdir="./src/com/twu/biblioteca/" destdir="build/classes"/>
</target>

<target name="jar">
    <mkdir dir="build/jar"/>
    <jar destfile="build/jar/Application.jar" basedir="build/classes">
        <manifest>
            <attribute name="Main-Class" value="com.twu.biblioteca.Application"/>
        </manifest>
    </jar>
</target>

<target name="run">
    <java jar="build/jar/Application.jar" fork="true"/>
</target>

<target name="junit" depends="compile">

    <junit printsummary="yes" haltonfailure="no">

        <!-- Project classpath, must include junit.jar -->
        <classpath refid="./lib/junit-4.11.jar" />

        <!-- test class -->
        <classpath location="./test/BooksController" />

        <test name="com.twu.biblioteca.BooksControllerTest"
              haltonfailure="no" todir="./report">
            <formatter type="plain" />
            <formatter type="xml" />
        </test>

    </junit>
</target>



问题在于junit类路径元素。refid属性允许您引用预定义的引用,ant会通知您没有此类引用。此外,junit任务下应该只有一个classpath元素(它可以处理多个,但文档只支持一个)

删除这些类路径元素并用替换它们

<classpath>
    <pathelement location="lib/junit-4.11.jar"/>
    <pathelement location="test/BooksController"/>
</classpath>

它应该会起作用。在这里,我们通过将junit jar添加到路径,然后添加包含测试的目录来构建类路径。您可能还需要将您的主类添加到此中,并使用另一个pathelement提供它们的位置

有关这些类路径结构的更多信息,请参见