Java 在JUnit报告中添加额外信息
我正在使用JUnit4,希望在JUnit报告中显示一些额外的信息。 为此,我将把额外的信息转储到报告xml中,然后修改xslt以读取额外的信息来生成HTML报告 到目前为止,有效的步骤包括:Java 在JUnit报告中添加额外信息,java,ant,junit,junit4,Java,Ant,Junit,Junit4,我正在使用JUnit4,希望在JUnit报告中显示一些额外的信息。 为此,我将把额外的信息转储到报告xml中,然后修改xslt以读取额外的信息来生成HTML报告 到目前为止,有效的步骤包括: 将所有代码从XMLJUnitResultFormatter复制到MyFormatter.java,并修改endTest()方法,以将额外信息以额外属性的形式添加到testcase XML标记中。 这真的很糟糕:(但我不能简单地重写它,因为在endTest()方法中直接使用私有实例变量,而不使用getter/
<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>
<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或SurefireMaven插件作为解决方案的情况,但我不能在我的项目中使用它们
在JUnit4中还有比这更好的方法吗?也许吧
自定义输出格式需要实现接口org.apache.tools.ant.taskdefs.optional.junit.JUnitResultFormatter
。这可以写入任何输出流,这是框架中内置的所有可扩展性。没错,扩展XMLJUnitResultF功能的方法不是很好ormatter
自定义输出。复制粘贴修改当然不理想,但可以接受
另一种方法可能是在ant
任务中定义多个formatter
。其中一个可以是常规的xml
格式化程序,另一个可以是用于其他信息的自定义格式化程序。这两个文件可以组合起来,然后使用xsl
转换将其转换为HTML
我让你来决定这是不是比你设计的更好的方法