gpt4 book ai didi

java - 在 JUnit 报告中添加额外信息

转载 作者:搜寻专家 更新时间:2023-11-01 03:51:40 26 4
gpt4 key购买 nike

我正在使用 JUnit4,并希望在 JUnit 报告中显示一些额外的信息。为此,我会将额外信息转储到报告 xml,然后修改 xslt 以读取该额外信息以生成 HTML 报告。

目前有效的步骤是:

  1. 将所有代码从 XMLJUnitResultFormatter 复制到 MyFormatter.java 并修改 endTest() 方法以将额外信息以额外属性的形式添加到测试用例 XML 标记中。这真的很糟糕 :( 但我不能简单地覆盖它,因为在 endTest() 方法中直接使用私有(private)实例变量而没有 getter/setter。

我的 junit Ant 任务:

    <junit fork="yes" printsummary="withOutAndErr">
<!--<formatter type="xml"/>-->
<formatter classname="com.some.junit.MyFormatter" extension=".xml"/>
<test name="com.some.source.MyTestClassTest" todir="${junit.output.dir}"/>
<classpath refid="JUnitProject.classpath"/>
</junit>
  1. 修改了xslt 以读取TESTCASE xml 标签的额外属性并显示在报告中。

我修改的报告 Ant 任务:

<target name="junitreport" depends="MyTestClassTest">
<junitreport todir="${junit.output.dir}">
<fileset dir="${junit.output.dir}">
<include name="TEST-*.xml"/>
</fileset>
<report styledir="reportstyle" format="frames" todir="${junit.output.dir}"/>
</junitreport>
</target>

我遇到过使用 TestNG 或 SureFire Maven 插件作为解决方案,但我不能在我的项目中使用它们。

在 JUnit4 中还有比这更好的方法吗?

最佳答案

也许吧?

接口(interface) org.apache.tools.ant.taskdefs.optional.junit.JUnitResultFormatter 是自定义输出格式需要实现的接口(interface)。这可以写入任何输出流,这是框架中内置的所有可扩展性。你是对的,没有很好的方法来扩展 XMLJUnitResultFormatter 的功能来自定义输出。复制-粘贴-修改当然不理想,但肯定可以接受。

另一种方法可能是在您的ant 任务中定义多个formatter。一个可以是常规的 xml 格式化程序,另一个可以是您自定义的用于附加信息的格式化程序。这两个文件可以合并,然后使用 xsl 转换转换为 HTML。

我留给您来决定这是否是比您设计的更好的方法。

关于java - 在 JUnit 报告中添加额外信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25790438/

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