当前位置: 首页 > 面试题库 >

如何配置JUnit Ant任务以仅在失败时产生输出?

满自明
2023-03-14
问题内容

我正在Ant中配置JUnit,以便将在每个构建上运行单元测试。我希望每次运行时都将 失败
测试的输出打印在Ant控制台输出中。我不需要从后续测试中看到任何输出。

这是我build.xml文件的相关位:

<junit>
    <classpath>
        <pathelement path="${build}"/>
    </classpath>
    <formatter type="brief" usefile="false"/>
    <batchtest>
        <fileset dir="${src}" includes="my/tree/junit/"/>
    </batchtest>
</junit>

这几乎产生了我想要的结果,但失败的测试在Ant输出中进行了详细说明,除了成功的测试还会写出以下输出:

    [junit]测试套件:my.tree.junit.ExampleTest
    [junit]测试运行:7,失败:0,错误:0,经过时间:0.002秒

我相信我已经尝试了JUnit任务文档中列出的所有组合,包括:

  • printsummary 属性
  • showoutput 属性
  • formatter 各种元素 type

我的用例是ant从命令行运行的。当我编写更多测试时,我不希望成功测试的输出太大而导致失败测试的输出滚动到屏幕之外。我只想ant保持安静,除非有一个失败的测试需要引起我的注意。如何配置Ant
/ JUnit来做到这一点?

我正在使用Ant版本1.6.4和JUnit 4.6。


问题答案:

一种可能性是使用’
classname‘属性定义您自己的xml格式器(并扩展org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter,可能对endTest()endTestsuite()方法不执行任何操作)。
该格式化程序将忽略信息消息,仅显示失败消息。

注意:此设置提到仅显示失败的测试的可能性:

<junit showoutput="true"
       fork="true"
       failureproperty="tests.failed"
       errorproperty="tests.failed">
    <batchtest todir="${test.results.dir}">
        <fileset dir="test">
            <include name="**/*Test.java"/>
        </fileset>
    </batchtest>
    <classpath path="${classes.dir}:${junit.jar}:${test.classes.dir}"/>
    <formatter usefile="false" type="brief"/>
    <!-- <formatter type="xml"/> If missing, only displays failed tests -->
</junit>

你测试了吗?

注意:“ showoutput="true"<formatter type="brief" usefile="false"/>”可能会有点问题,如最近这张(2012年2月)的机票所示)

另一个方法是定义您的ant Juint测试运行程序,支持ant
JUnitResultFormatter并仅显示stderr消息。

EclipseTestRunner从蚀是一个很好的例子。



 类似资料:
  • 问题内容: 在我当前的项目中,我正在使用junit测试。在本地PC上运行我的ant文件会生成预期的测试报告,但是当Bamboo尝试运行我的测试时,它将生成以下输出。 我怎么了 SimplerTest.java 本地输出: 服务器输出: build.xml ant -v输出: http://nopaste.info/1abdd27a8e.html 问题答案: 感谢详细的Ant输出。 看来您正在Bam

  • 问题内容: 我为我们的maven多项目创建了一个hudson作业,其中包含5个模块,以将工件部署到maven存储库。没关系,只要它成功构建且没有测试失败即可。但是,现在我想满足以下要求: 当模块发生测试故障时,构建应继续扩建并测试其他模块,但变为黄色。使用可以完成,但在下一个要求时会失败。 当模块发生测试故障时,不应将任何工件部署到Maven存储库。 其他项目依赖于该项目的快照,而这些项目只想使用

  • 想改进这个问题吗 通过编辑此帖子,添加详细信息并澄清问题。 这就是我实际导入firestore依赖项时发生的情况,我认为这一切都与连接有关,但这些错误一直在发生。请帮帮我 问题:任务“:app:mergeExtDexDebug”的执行失败 无法解析配置“:应用:调试运行时类路径”的所有文件。无法转换 firebase-storage-19.2.1.aar (com.google.firebase:

  • 我使用的是Android Studio 2.0,当我试图运行程序时,发生了一些奇怪的事情。我运行了gradle的build命令,得到了以下错误: 因此...那是什么鬼东西?我应该做的是将代码添加到gradle.build来解决这个问题,但问题是:为什么我会得到这个错误消息? 请救救我伙计们!

  • 问题内容: 我正在通过jenkins部署Ember CLI应用程序,并使用nginx发布它。这是通过詹金斯构建脚本: nginx的配置只是引导到。效果很好,但是当我转到页面时,该页面为空白,并且在控制台中显示以下输出: 我猜这两个错误是相关的,但我不知道是什么导致了它们。我曾尝试这个答案似乎是一个类似的问题,但它并没有为我工作。一切在我的开发环境中都可以正常工作,并且在里面我看不到任何可疑的东西。