如何为Junit结果生成HTML报告?

时间:2010-03-05 09:04:53

标签: html junit selenium report

有没有办法(轻松)生成包含测试结果的HTML报告?我目前正在使用除Selenium之外的JUnit来测试Web应用程序UI。

PS:鉴于项目结构,我不应该使用Ant:(

7 个答案:

答案 0 :(得分:13)

如果您可以使用Ant,那么您只需使用JUnitReport任务,详见此处:http://ant.apache.org/manual/Tasks/junitreport.html,但您在问题中提到您不应该使用Ant。 我相信该任务只是将XML报告转换为HTML,因此使用任何XSLT处理器生成类似的报告是可行的。

或者,您可以切换到使用与JUnit非常相似的TestNG(http://testng.org/doc/index.html),但它具有默认的HTML报告以及其他一些很酷的功能。

答案 1 :(得分:13)

对于那些使用Maven构建工具的人来说,有一个名为Surefire Report的插件。

报告如下所示:Sample

答案 2 :(得分:11)

您可以通过蚂蚁轻松完成此操作。这是一个用于执行此操作的build.xml文件

 <project name="genTestReport" default="gen" basedir=".">
        <description>
                Generate the HTML report from JUnit XML files
        </description>

        <target name="gen">
                <property name="genReportDir" location="${basedir}/unitTestReports"/>
                <delete dir="${genReportDir}"/>
                <mkdir dir="${genReportDir}"/>
                <junitreport todir="${basedir}/unitTestReports">
                        <fileset dir="${basedir}">
                                <include name="**/TEST-*.xml"/>
                        </fileset>
                        <report format="frames" todir="${genReportDir}/html"/>
                </junitreport>
        </target>
</project>

这将找到格式为TEST - *。xml的文件,并将报告生成到名为unitTestReports的文件夹中。

要运行它(假设上面的文件名为buildTestReports.xml),请在终端中运行以下命令:

ant -buildfile buildTestReports.xml

答案 3 :(得分:10)

我发现上述答案非常有用但并非真正的通用,它们都需要一些其他主要的构建系统,如Ant或Maven。

我想用一个简单的一次性命令生成一个报告,我可以从任何东西(从构建,测试或只是我自己)调用,所以我创建了junit2html,可以在这里找到:https://github.com/inorton/junit2html

您可以通过执行以下操作来安装它:

pip install junit2html

答案 4 :(得分:5)

Junit xml格式在Java / Maven / Ant字之外使用。 Jenkins与http://wiki.jenkins-ci.org/display/JENKINS/xUnit+Plugin是一个解决方案。

对于一次性解决方案,我找到了这个工作: https://www.npmjs.com/package/junit-viewer

junit-viewer --results=surefire-reports --save=file_location.html

--results=是包含xml文件的目录(测试报告)

答案 5 :(得分:3)

有多种选项可用于为Selenium WebDriver脚本生成HTML报告。

<强> 1。使用JUNIT TestWatcher类创建自己的Selenium HTML报告

TestWatcher JUNIT类允许覆盖在JUNIT测试失败或通过时自动调用的failed()和succeeded()JUNIT方法。

TestWatcher JUNIT类允许覆盖以下方法:

  • protected void failed(Throwable e,Description description)

在测试失败时调用failed()方法

  • protected void finished(描述说明)
当测试方法完成(无论是通过还是失败)时,都会调用

finished()方法

  • protected void skipped(AssumptionViolatedException e,Description 描述)
当由于假设失败而跳过测试时,会调用

skipped()方法。

  • protected void starting(描述说明)

在测试即将开始时调用starting()方法

  • protected void succeeded(描述说明)

在测试成功时调用succeeded()方法

请参阅以下示例代码:

import static org.junit.Assert.assertTrue;
import org.junit.Test;

public class TestClass2 extends WatchManClassConsole {

    @Test public void testScript1() {
        assertTrue(1 < 2); >
    }

    @Test public void testScript2() {
        assertTrue(1 > 2);
    }

    @Test public void testScript3() {
        assertTrue(1 < 2);
    }

    @Test public void testScript4() {
        assertTrue(1 > 2);
    }
}

import org.junit.Rule; 
import org.junit.rules.TestRule; 
import org.junit.rules.TestWatcher; 
import org.junit.runner.Description; 
import org.junit.runners.model.Statement; 

public class WatchManClassConsole {

    @Rule public TestRule watchman = new TestWatcher() { 

        @Override public Statement apply(Statement base, Description description) { 
            return super.apply(base, description); 
        } 

        @Override protected void succeeded(Description description) { 
            System.out.println(description.getDisplayName() + " " + "success!"); 
        } 

        @Override protected void failed(Throwable e, Description description) { 
            System.out.println(description.getDisplayName() + " " + e.getClass().getSimpleName()); 
        }
    }; 
}

<强> 2。使用倾城报告框架

Allure框架可以帮助您为Selenium WebDriver项目生成HTML报告。

报告框架非常灵活,适用于许多编程语言和单元测试框架。

您可以在http://allure.qatools.ru/上阅读有关它的所有内容。

您需要将以下依赖项和插件添加到您的pom.xml文件

  1. maven surefire
  2. aspectjweaver
  3. 诱惑适配器
  4. 查看更多详细信息,包括本文中的代码示例: http://test-able.blogspot.com/2015/10/create-selenium-html-reports-with-allure-framework.html

答案 6 :(得分:1)

我发现xunit-viewer,它已弃用@daniel-kristof-kiss提到的junit-viewer

这非常简单,可以自动递归地收集ANT Junit XML格式的所有相关文件,并创建一个具有过滤和其他出色功能的html文件。

我用它来上传Travis内部版本的测试结果,因为Travis不支持其他标准格式测试结果输出的收集。