【问题标题】:Customized html report name in JUnitReport taskJUnitReport 任务中自定义的 html 报告名称
【发布时间】:2015-09-01 05:44:03
【问题描述】:

我正在使用 JunitReport 任务使用 maven 生成 HTML 格式的 junit 报告。

我在 pom.xml 中添加了以下项目以生成 HTML 格式的测试报告

<plugin>
            <!-- Extended Maven antrun plugin -->
            <!-- https://maven-antrun-extended-plugin.dev.java.net/ -->
            <groupId>org.jvnet.maven-antrun-extended-plugin</groupId>
            <artifactId>maven-antrun-extended-plugin</artifactId>
            <executions>
                <execution>
                    <id>test-reports</id>
                    <phase>test</phase>
                    <configuration>
                        <tasks>
                            <junitreport todir="target/surefire-reports">
                                <fileset dir="target/surefire-reports">
                                    <include name="**/*.xml" />
                                </fileset>
                                <report format="noframes" todir="target/surefire-reports" />
                            </junitreport>
                        </tasks>      
                    </configuration>
                    <goals>
                        <goal>run</goal>
                    </goals>
                </execution>
            </executions>
            <dependencies>
                <dependency>
                    <groupId>org.apache.ant</groupId>
                    <artifactId>ant-junit</artifactId>
                    <version>1.8.0</version>
                </dependency>
                <dependency>
                    <groupId>org.apache.ant</groupId>
                    <artifactId>ant-trax</artifactId>
                    <version>1.8.0</version>
                </dependency>
            </dependencies>
        </plugin>

html 报告名称始终显示为 junit-noframes.html。由于我生成了更多的 html 报告,因此每个 html 报告都生成了与 junit-noframes.html 相同的名称。我想给自定义的 html 报告名称。

如何更改 html 报告名称?我没有找到任何选项。

【问题讨论】:

  • 有什么解决办法吗?
  • 对自己的问题添加评论通常不是很有帮助,除非已经有听众(以前的评论者或海报):没有人会看到它。相反,请考虑更新我们的问题,因为没有人回答的通常原因是它太复杂而无法适应问答网站,或者不清楚您在问什么。也就是说,我同时回答了你的问题;)。

标签: maven xslt ant junit maven-antrun-plugin


【解决方案1】:

documentation says

noframes 格式不使用重定向,并生成一个名为 junit-noframes.html 的文件。

并且没有提供解决方法。但是,您可以像使用 ANT 一样使用参数,因此可以使用以下方法:

<report format="noframes" todir="${report.location}" /> 

several ways of setting the parameters,来自命令行、环境变量或build.properties 文件。

在我看来,这个元素不允许您更改 XSLT 转换的输出文件名,但是,如果您可以编写自定义 XSLT 样式表并使用扩展函数,或者如果您可以将 ANT 配置为使用 XSLT 2.0 处理器并使用 xsl:result-document。不过,要解决这个问题似乎很麻烦。

如果在您的情况下将它们放在不同的目录中就足够了,那么这就是简单的方法。


另一个解决方案as proposed by Suntaragali Qa,您可以通过将文件移动到带有时间戳的新名称来解决它。

添加这个:

<tstamp>
    <format property="timestamp" pattern="yyyyMMddHHmmss" />
</tstamp>

然后改变这个:

<junitreport todir="target/surefire-reports">
    <fileset dir="target/surefire-reports">
        <include name="**/*.xml" />
    </fileset>
    <report 
        format="noframes" 
        todir="target/surefire-reports/html"
        styledir="target/surefire-reports" />
</junitreport>

<move 
    file="target/surefire-reports/html/junit-noframes.html" 
    tofile="target/surefire-reports/html/junit-report-${timestamp}.html" />

我认为第二种解决方案更容易实现并使用标准的 ANT 语法。有关如何执行此操作的更多信息,请参阅链接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多