gpt4 book ai didi

java - 如何强制ant打印junit的报告带颜色

转载 作者:行者123 更新时间:2023-12-01 12:34:34 26 4
gpt4 key购买 nike

下面是我的 build.xml

    <target name="tdd" description="Run unittest" depends="jar">
<mkdir dir="${build.test.dir}"/>
<javac srcdir="${test.src.dir}" destdir="${build.test.dir}"
includeAntRuntime="false">
<classpath refid="lib.junit"/>
<classpath refid="lib.dataquery"/>
</javac>
<jar destfile="${build.jar.dir}/dataqueryTDD.jar">
<fileset dir="${build.test.dir}">
<include name="**/*.class"/>
</fileset>
</jar>
<mkdir dir="${build.test.report.dir}"/>

<junit printsummary="yes">
<classpath refid="lib.junit"/>
<classpath refid="lib.dataquery"/>
<classpath refid="lib.dataquery.tdd"/>
<formatter type="xml"/>
<batchtest todir="${build.test.report.dir}">
<fileset dir="${test.src.dir}" includes="**/*Test.java"/>
</batchtest>
</junit>

<junitreport todir="${build.test.report.dir}" tofile="TEST-Summary.xml">
<fileset dir="${build.test.report.dir}" includes="*.xml"/>
</junitreport>
</target>

我可以运行它们并打印报告,不会出现错误。

但是,ant只会告诉我是否有失败的测试。我需要通过命令cat手动查看测试报告。我想知道如何强制 ant 将失败的测试报告转储到标准输出上并带有颜色。

谢谢

最佳答案

尝试以下操作:

<!-- new testwithcat target -->
<target name="testwithcat" depends="tdd, catreport"/>

<target name="tdd" description="Run unittest" depends="jar">
<mkdir dir="${build.test.dir}"/>
<javac srcdir="${test.src.dir}" destdir="${build.test.dir}"
includeAntRuntime="false">
<classpath refid="lib.junit"/>
<classpath refid="lib.dataquery"/>
</javac>
<jar destfile="${build.jar.dir}/dataqueryTDD.jar">
<fileset dir="${build.test.dir}">
<include name="**/*.class"/>
</fileset>
</jar>
<mkdir dir="${build.test.report.dir}"/>

<!-- add errorProperty, failureProperty to junit task -->
<junit printsummary="yes" errorProperty="test.failed" failureProperty="test.failed">
<classpath refid="lib.junit"/>
<classpath refid="lib.dataquery"/>
<classpath refid="lib.dataquery.tdd"/>
<formatter type="xml"/>
<batchtest todir="${build.test.report.dir}">
<fileset dir="${test.src.dir}" includes="**/*Test.java"/>
</batchtest>
</junit>

<junitreport todir="${build.test.report.dir}" tofile="TEST-Summary.xml">
<fileset dir="${build.test.report.dir}" includes="*.xml"/>
</junitreport>
</target>

<!-- add cat report target that runs if test.failed has been set in junit task -->
<target name="catreport" depends="test" if="test.failed">
<echo message="Test failed - cat the test report"/>
<!-- customise the following to cat your report in colour -->
<exec executable="cat">
<arg value="${build.test.report.dir}/TEST-Summary.xml"/>
</exec>
</target>

运行使用:

ant testwithcat

输出:

Test failed - cat the test report
[content of ${build.test.report.dir}/TEST-Summary.xml]

您需要自定义

<exec executable="cat">
<arg value="${build.test.report.dir}/TEST-Summary.xml"/>
</exec>

使用您自己的命令“用彩色标记您的报告”。

要获得纯文本输出,请查看 Ant JUnit Nice Output Formatter .

你可以使用

<report format="frames" todir="${build.test.report.dir}"/>

<report format="noframes" todir="${build.test.report.dir}"/> 

在junitreport任务中生成html输出。

可以替换

<exec executable="cat">
<arg value="${build.test.report.dir}/TEST-Summary.xml"/>
</exec>

调用在浏览器中显示 html。请参阅Exec例如执行此操作的代码。

关于java - 如何强制ant打印junit的报告带颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25697291/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com