我正在使用JUnit4并希望在JUnit报告中显示一些额外的信息。 为此,我将把额外的信息转储到报告xml中,然后修改xslt以读取额外的信息以生成HTML报告。
到目前为止有效的步骤是:
我的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>
我修改了报告的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中有没有比这更好的方法?
答案 0 :(得分:0)
也许?
接口org.apache.tools.ant.taskdefs.optional.junit.JUnitResultFormatter
是自定义输出格式需要实现的。这可以写入任何输出流,这是构建到框架中的所有可扩展性。你是对的,没有一种扩展XMLJUnitResultFormatter
功能来定制输出的好方法。复制 - 粘贴 - 修改当然不是理想的,但肯定是可以接受的。
另一种方法可能是在formatter
任务中定义多个ant
。一个可以是常规xml
格式化程序,另一个是您自定义格式化程序的附加信息。可以合并这两个文件,然后使用xsl
转换将其转换为HTML。
我留给你来决定这是一个更好的方法,而不是你设计的方法。