支持 src/ 和 test/ 的简单 ant 构建脚本?

2024-01-28

目前,我使用 IDE 进行所有构建和单元测试。现在我需要使用ant。我发现了一些简单的 ant build.xml 脚本,但它们不支持单独的 Junit test/ 目录。我的项目结构如下:



src/
  com/foo/
  com/bar/

test/ -- Mirror of src/, with all *Test.java files.
  com/foo/ 
  com/bar/

lib/  -- All Java libs, including junit 4.
  

如何构建一个小 ant 脚本来构建我的 src/ 和 test/ Java 类,然后运行我的所有 JUnit 测试?


我定义<path>每个目标的元素。

这是我的构建文件的摘录,您必须调整一些路径和属性,但您可以明白:

<path id="src.path">    
    <pathelement path="src/"/>
</path>

<path id="compile.path">
    <path refid="src.path"/>
    <fileset dir="lib/">
        <include name="**/*.jar"/>
    </fileset>
</path>

<path id="unit.test.path">
    <path refid="compile.path"/>
    <pathelement path="test/"/>
</path>

<target name="compile">
    <javac destdir="bin">
        <src path="src"/>
        <classpath refid="compile.path"/>
    </javac>
</target>

<target name="compileUnitTests" depends="compile">
    <javac srcdir="test/" destdir="bin">
        <classpath refid="unit.test.path"/>
    </javac>
</target>

<target name="runUnitTests" depends="compileUnitTests">
    <junit printsummary="yes" haltonfailure="no">
    <jvmarg value="-Dfile.encoding=UTF-8"/>
        <classpath refid="unit.test.path"/>

        <formatter type="xml"/>

        <batchtest fork="yes" todir="${this.report}">
            <fileset dir="test">
                <include name="${test.pattern}"/>
                <exclude name="**/AllTests.class"/>
                <exclude name="**/*$*.class"/>
            </fileset>
        </batchtest>
    </junit>
</target>

如果您需要根据自己的需求进行改进,正如cotton.m 所说,请阅读 ant 任务文档。将 ant 与您的特定目录结构一起使用确实需要对该工具有一定的了解,不要指望您会轻松找到适合您的确切要求的现成示例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

支持 src/ 和 test/ 的简单 ant 构建脚本? 的相关文章

随机推荐