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

wooyq4lh  于 12个月前  发布在  其他
关注(0)|答案(8)|浏览(193)

有没有一种方法可以(轻松地)生成一个包含测试结果的HTML报告?我目前正在使用JUnit和Selenium来测试Web应用程序的UI。
PS:鉴于项目结构,我不应该使用Ant:(

yyhrrdl8

yyhrrdl81#

我发现上面的答案很有用,但不是真正的通用,它们都需要一些其他的主要构建系统,如Ant或Maven。
我想用一个简单的一次性命令生成一个报告,我可以从任何地方调用(从构建,测试或只是我自己),所以我创建了junit2html,可以在这里找到:https://github.com/inorton/junit2html
您可以通过执行以下操作来安装它:

pip install junit2html

字符串

nfg76nw0

nfg76nw02#

对于那些使用Maven构建工具的人来说,还有一个名为Surefire Report的插件。
报告如下所示:Sample

8wigbo56

8wigbo563#

如果你可以使用Ant,那么你只需要使用JUnitReport任务就可以了,具体如下:http://ant.apache.org/manual/Tasks/junitreport.html,但是你在问题中提到你不应该使用Ant。我相信这个任务只是将XML报告转换成HTML,所以使用任何一个XML处理器来生成类似的报告都是可行的。
或者,您可以切换到使用TestNG(http://testng.org/doc/index.html),它与JUnit非常相似,但具有默认的HTML报告以及其他一些很酷的特性。

vtwuwzda

vtwuwzda4#

您可以通过ant轻松地完成此操作。

<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

0vvn1miw

0vvn1miw5#

Junit xml格式在Java/Maven/Ant word之外使用。Jenkins with http://wiki.jenkins-ci.org/display/JENKINS/xUnit+Plugin是一个解决方案。
对于一次性解决方案,我找到了这个工具:https://www.npmjs.com/package/junit-viewer
第一个月
--results=是xml文件(测试报告)目录

ru9i0ody

ru9i0ody6#

我找到了xunit-viewer,它已经被@daniel-kristof-kiss提到的junit-viewer弃用。
它非常简单,自动递归地收集ANT Junit XML格式的所有相关文件,并创建一个具有过滤和其他功能的HTML文件。
我用它来上传Travis构建的测试结果,因为Travis没有其他支持收集标准格式的测试结果输出。

inkz8wg9

inkz8wg97#

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

1.使用JUNIT TestWatcher类创建您自己的Selenium HTML报告

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

  • protected void failed(Throwable e,Description描述)

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

  • protected void finished(Description描述)

finished()方法在测试方法完成时被调用(无论是通过还是失败)

  • protected void skipped(AssumptionViolatedException e,Description description)

skipped()方法在由于失败的假设而跳过测试时调用。

  • protected void starting(Description说明)

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

  • protected void成功(描述描述)

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报告框架

Allure框架可以帮助您为Selenium WebDriver项目生成HTML报告。
报告框架非常灵活,可以与许多编程语言和单元测试框架一起使用。
您可以在https://allurereport.org/上阅读有关它的所有内容。
您需要将以下依赖项和插件添加到pom.xml文件中

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

4zcjmb1e8#

我已经创建了一个JUnit解析器/查看器,可以直接在浏览器中运行。它支持转换为JSON,HTML报告可以很容易地重用。
https://lotterfriends.github.io/online-junit-parser/
如果你仍然缺少一个功能,请随时在Github上创建一个问题。

相关问题