Junit Ant Task, 输出堆栈跟踪

2022-09-03 01:01:30

我在以下JUnit任务中有许多测试失败。

 <target name="test-main" depends="build.modules" description="Main Integration/Unit tests">
        <junit fork="yes"
               description="Main  Integration/Unit Tests"
               showoutput="true"
               printsummary="true"
               outputtoformatters="true">
            <classpath refid="test-main.runtime.classpath"/>
            <batchtest filtertrace="false" todir="${basedir}">
                <fileset dir="${basedir}" includes="**/*Test.class" excludes="**/*MapSimulationTest.class"/>
            </batchtest>
        </junit>
    </target>

如何告诉 Junit 输出每个测试的错误,以便查看堆栈跟踪并调试问题。


答案 1

您需要将格式化程序任务添加为批处理测试任务的子级(而不是作为 junit 任务的直接子级)

格式化程序的语法为:

<formatter type="plain" usefile="false"/>

type可以是 、 或 之一。plainbriefxmlfailure

usefile="false"要求 Ant 将输出发送到控制台。

向下滚动到 http://ant.apache.org/manual/Tasks/junit.html“格式化程序”上的 h4 以获取更多详细信息。


答案 2

答案是在标记内添加标记。

 <target name="test-main" depends="build.modules" description="Main Integration/Unit tests">
        <junit fork="yes"
               description="Main  Integration/Unit Tests"
               showoutput="true"
               printsummary="true"
               outputtoformatters="true">
            <classpath refid="test-main.runtime.classpath"/>
            <batchtest filtertrace="false">
                <fileset dir="${basedir}/out/test/common" includes="**/*Test.class" excludes="**/*MapSimulationTest.class"/>
                <fileset dir="${basedir}/out/test/test-simulation" includes="**/*Test.class" excludes="**/*MapSimulationTest.class"/>
            </batchtest>
            <formatter type="brief" usefile="false"/>
        </junit>
    </target>

推荐