有没有办法(轻松)生成包含测试结果的HTML报告?我目前正在使用除Selenium之外的JUnit来测试Web应用程序UI。
PS:鉴于项目结构,我不应该使用Ant:(
答案 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类允许覆盖以下方法:
在测试失败时调用failed()方法
finished()方法
skipped()方法。
在测试即将开始时调用starting()方法
在测试成功时调用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文件
查看更多详细信息,包括本文中的代码示例: 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不支持其他标准格式测试结果输出的收集。