制作jUnit输出信息并编译到/ build文件夹

时间:2011-08-02 11:56:00

标签: ant junit

我有以下Ant构建文件:

<?xml version="1.0"?>    
<!-- the value of the default attr must be one of the targets. -->
<project name="Money" default="build-source" basedir=".">        
    <description>The Money project build file.</description>
    <property name="src" location="."/>
    <property name="build" location="build"/>
    <property name="junit" location="lib/junit-4.9b3.jar"/>

    <path id="_classpath">
        <pathelement path="${junit}"/>
        <pathelement path="${build}"/>
    </path>

    <target name="prepare">
        <mkdir dir="${build}"/>
    </target>

    <target name="build-source" depends="prepare"
            description="compile the source ">
        <javac srcdir="${src}" destdir="${build}">
            <classpath refid="_classpath"/>
        </javac>
    </target>

    <target name="run" depends="build-source">
        <junit printsummary="on" showoutput="on">
            <test name="money.MoneyTest"/>
            <classpath refid="_classpath"/>
        </junit>
    </target>
</project>

这很基本 - 我只是想让这个东西正常运行。我没有得到的是:1)为什么将编译后的文件输出到/ build / money目录?我希望输出目录只是/ build,给定我的文件的目录结构:

build/
build.xml
lib/
src/
test/

2)当有测试未通过时,它会显示“Test money.MoneyTest FAILED”。我希望它输出有关故障,预期/实际值,行号等信息。

我无法通过盯着上面的构建文件来解决这个问题。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

  1. 它输出build下的编译文件,创建一个与包布局相对应的目录结构。

    由于您将课程放在money包中,因此输出将位于build/money之下。如果您将类放在org.example.foo包下,那么您的输出将位于build/org/example/foo目录中。

    要将.class文件放在build中,您必须使用默认包。

    修改 我假设您的源文件具有package money;声明,如:

    package money;
    
    public class MoneyTest {
    ...
    }
    
  2. 如果添加<formatter>元素,有关测试失败的详细报告将写入输出文件(默认情况下,名为TEST- name )。另请参阅Ant Junit Task Documentation

    <junit printsummary="withOutAndErr" showoutput="on">
        <formatter type="plain"/>
        <test name="money.MoneyTest"/>
        <classpath refid="_classpath"/>
    </junit>
    

    我还没有找到将失败的测试报告直接打印到标准输出的方法。