我已经能够使用ant成功编译和运行该项目。但是当我尝试运行我的测试文件时,它给了我一个奇怪的参考./lib/junit-4.11.jar未找到。我可能在我在junit任务中提到的refid中做错了。请指出错误。
<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>
答案 0 :(得分:0)
问题出在你的junit classpath 元素上。 refid 属性允许您引用预定义的引用,而ant通知您没有此类引用。此外,在junit任务下应该只有一个 classpath 元素(它可以使用多个,但文档只支持一个)。
删除 classpath 元素并将其替换为
<classpath>
<pathelement location="lib/junit-4.11.jar"/>
<pathelement location="test/BooksController"/>
</classpath>
它应该有效。在这里,我们通过将junit jar添加到路径然后包含测试的目录来构建类路径。您可能还需要将主要类添加到此,并使用另一个 pathelement 来提供它们的位置。
有关这些类似路径的结构的更多信息,请参阅the ant documentation。