繁体   English   中英

仅当测试失败时,如何使Ant junit任务显示详细信息?

[英]How to make Ant junit task show detail only if a test fails?

我的Ant junit任务当前设置为输出最少的信息。 在控制台上,对于每个测试类,它会打印类名称,运行,失败和错误的测试数量以及每个测试的经过时间。 如果测试失败,则还有另外一行表示测试失败。

我想在控制台上获得更多详细信息,但是仅在测试失败的情况下。 如果我按照建议像这样 ,通过添加具有usefile额外的普通格式化=假,然后我得到了所有测试的额外多余的细节,即使通过了所有测试。 这包括打印执行的每个测试方法,以及每个测试类的冗余行。

有可能得到这个吗?

我相信我已经实施了合理的解决方案。

解决方案的关键点是:*在单元测试完成后执行任务,仅在“ test.failed”下运行; *使用“ xmltask”任务库来解析测试结果文件并发出简洁的结果

为此,我编写了以下目标:

<target name="show-unit-test-failures" if="test.failed">
    <taskdef if:set="xmltask.present" name="xmltask" classname="com.oopsconsultancy.xmltask.ant.XmlTask"/>
    <echo if:set="xmltask.present" message="Unit test failure report details:"/>
    <xmltask if:set="xmltask.present">
        <fileset dir="gen/reports/artifacts/junit">
            <include name="TEST-*Test.xml"/>
        </fileset>
        <call path="//testcase[./error]">
            <parThatam name="className" path="@classname"/>
            <param name="methodName" path="@name"/>
            <param name="errorText" path="./error/text()"/>
            <actions>
                <echo>---------------------------------</echo>
                <echo>@{className}.@{methodName}:</echo>
                <echo>@{errorText}</echo>
            </actions>
        </call>
        <call path="//testcase[./failure]">
            <param name="className" path="@classname"/>
            <param name="methodName" path="@name"/>
            <param name="errorText" path="./failure/text()"/>
            <actions>
                <echo>---------------------------------</echo>
                <echo>@{className}.@{methodName}:</echo>
                <echo>@{errorText}</echo>
            </actions>
        </call>
    </xmltask>
</target>

请注意,如果“ xmltask.jar”文件不可用,我也会让它“正常失败”。 在任务中引用名称空间的功能是Ant 1.9.1和更高版本中的一项新功能。

我将这个目标称为“运行单元测试”目标的结尾。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM