我想知道我的蚂蚁junit任务是否有问题

时间:2012-12-09 19:23:03

标签: ant

我正在编写build.xml。但是,我的junit任务似乎出了问题。当我运行我的junit任务。我可以建立成功,但junit报告只显示运行1测试有错误。但我有超过10个测试。所以我想知道我的junit任务是否有运行。这是我的代码。

<property name="src.dir"    value="src"/>
<property name="bin.dir"    value="bin"/>
<property name="dest.dir"   value="dest"/>
<property name="test.dir"   value="test/>
<property name="lib.dir"    value="lib"/>
<path id="classpath">
    <pathelement location="${lib.dir}/junit-4.11.jar"/>
    <pathelement location="${lib.dir}/ant-junit4.jar"/>
</path>

<target name="test" depends="compile">
    <junit printsummary="yes" haltonfailure="no">
            <classpath>
                <pathelement location="${bin.dir}"/>
                <path refid="classpath"/>
            </classpath>
            <formatter type="plain" usefile="false"/>   
                <batchtest fork="yes">
                    <fileset dir="${test.dir}" includes="*Test*.java"/>
                </batchtest>
            </junit>
        </target>

我无法弄清楚出了什么问题,所以有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

发生了什么事?你收到任何错误信息吗?

您通常需要执行以下操作:

  • 编译您的普通代码。生成的*.class文件应放在target/classesbuild/classes等目录中。使用destdir任务的<javac>参数执行此操作。
  • 编译JUnit测试。
    • 类路径中,您需要编译 普通
    • 所需的所有jar文件
    • 您需要引用 正常 类编译到的destdir
    • 你需要JUnit jar。
    • 这些应该从普通的jar中编译到 不同的目录 。通常情况下,这是target/test-classesbuild/test-classes

编译完JUnit测试后,您可以运行它们。您可以像使用<junit>任务一样使用includeantruntime任务。

  • 您需要确保true参数设置为fork
  • 您还应将true设置为target/test-classes
  • 编译测试类时,您需要相同的类路径(包含所有三个元素)。可能需要更多的罐子,但通常不需要。
  • 您在 已编译 JUnit测试 classfiles (您保存到{{1在您的示例中,您尝试针对源运行它们。
  • 。}或build/test-classes

我使用Maven标准进行目录布局。这意味着我的Java源代码在src/main/java下,而我的JUnit Java文件在src/test/java下。所需的任何XML或属性或其他无源文件都存储在src/main/resources中。常规源编译为target/classes,而Junit源编译为target/test-classes

这使您可以轻松地单独编译代码和测试代码,而无需担心目录编译中的**/test/****/Test/****/JUnit/**异常,因为所有内容都是独立的。

希望这有帮助。