如何在TestNG中生成报告

本文详细介绍了如何在TestNG框架中通过ReportNG生成详细的测试报告,包括添加ReportNG依赖、创建测试类、配置报告日志、禁用默认侦听器以及使用彩色HTML输出。
摘要由CSDN通过智能技术生成

在这篇文章中,我们将学习如何在TestNG中生成测试报告。我们将使用ReportNG生成报告,因为它生成的报告比默认的TestNG报告更好。

我们将遵循一些简单的步骤来生成报告。

添加ReportNG依赖项
<!-- https://mvnrepository.com/artifact/org.uncommons/reportng -->
<dependency>
    <groupId>org.uncommons</groupId>
    <artifactId>reportng</artifactId>
    <version>1.1.4</version>
</dependency>
创建测试类
package Test;
 
import org.testng.Assert;
import org.testng.annotations.Test;
 
public class CodekruTest {
 
    @Test
    public void test() {
        int a = 5;
        int b = 6;
        int c = 11;
        Assert.assertTrue((a + b) == c);
    }
 
}
添加报告程序日志

现在,添加Reporter.log(comment)和您希望在报告中看到的注释。我们还放置了一个日志,如下所示。

 
import org.testng.Assert;
import org.testng.Reporter;
import org.testng.annotations.Test;
 
public class CodekruTest {
 
    @Test
    public void test() {
        int a = 5;
        int b = 6;
        int c = 11;
        Reporter.log("Executing the test"); // this will appear in our report
        Assert.assertTrue((a + b) == c);
    }
 
}
禁用默认TestNG侦听器
  • 右键单击您的项目并选择Properties。
  • 转到TestNG。
  • 勾选Disable default listeners复选框。
  • 然后单击应用并关闭。

Disable default listeners

生成testng.xml文件

我们必须在testng.xml文件中添加以下侦听器

    org.uncommons.reportng.HTMLReporter
    org.uncommons.reportng.JUnitXMLReporter

因此,我们的testng.xml文件如下所示

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="codekru">
    <listeners>
        <listener class-name="org.uncommons.reportng.HTMLReporter" />
        <listener
            class-name="org.uncommons.reportng.JUnitXMLReporter" />
    </listeners>
    <test name="codekruTest">
        <classes>
            <class name="Test.CodekruTest" />
        </classes>
    </test>
</suite>

现在,运行testng.xml文件,让我们看看是否生成了报告。

问题是,你会得到一个错误-

java.lang.NoClassDefFoundError: com/google/inject/Injector
	at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
	at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3325)
	at java.base/java.lang.Class.privateGetPublicMethods(Class.java:3350)
	at java.base/java.lang.Class.getMethods(Class.java:1996)
	at org.apache.velocity.util.introspection.ClassMap.getAccessibleMethods(ClassMap.java:258)
	at org.apache.velocity.util.introspection.ClassMap.populateMethodCache(ClassMap.java:151)
	at org.apache.velocity.util.introspection.ClassMap.<init>(ClassMap.java:64)
	at org.apache.velocity.util.introspection.IntrospectorBase.createClassMap(IntrospectorBase.java:126)
	at org.apache.velocity.util.introspection.IntrospectorBase.getMethod(IntrospectorBase.java:112)
	at org.apache.velocity.util.introspection.Introspector.getMethod(Introspector.java:100)
	at org.apache.velocity.runtime.parser.node.PropertyExecutor.discover(PropertyExecutor.java:65)
	at org.apache.velocity.runtime.parser.node.PropertyExecutor.<init>(PropertyExecutor.java:39)
	at org.apache.velocity.util.introspection.UberspectImpl.getPropertyGet(UberspectImpl.java:156)
	at org.apache.velocity.runtime.parser.node.ASTIdentifier.execute(ASTIdentifier.java:125)
	at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:175)
	at org.apache.velocity.runtime.parser.node.ASTReference.evaluate(ASTReference.java:307)
	at org.apache.velocity.runtime.parser.node.ASTNotNode.evaluate(ASTNotNode.java:45)
	at org.apache.velocity.runtime.parser.node.ASTExpression.evaluate(ASTExpression.java:45)
	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:68)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:55)
	at org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:166)
	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:114)
	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:230)

我们需要再添加个依赖

<dependency>
    <groupId>com.google.inject</groupId>
    <artifactId>guice</artifactId>
    <version>4.2.0</version>
</dependency>

现在,让我们重新编译testng.xml,看看会发生什么。

我们的报告已经生成,但是在哪里生成?请刷新项目一次,您将在test-output html文件夹下看到一个index.html文件。

reportng customized report

在浏览器中打开index.html文件,您将获得令人难以置信的报告。🙂

generated report

使用ReportNG制作彩色HTML报告。

你们都知道我们可以用ReportNG制作彩色报告,比如

  • 以绿色颜色通过测试。
  • 我们在红色的测试中失败了。
  • 或者用橙子表示警告。

在代码中添加下面的属性。

 System.setProperty("org.uncommons.reportng.escape-output", "false");

添加颜色使用HTML代码如下

String message = "<font color = 'green'>" + "Test is successfully executed" + "</font>";
Reporter.log(message);

完整代码

package Test;
 
import org.testng.Assert;
import org.testng.Reporter;
import org.testng.annotations.Test;
 
public class CodekruTest {
 
    @Test
    public void test() {
        int a = 5;
        int b = 6;
        int c = 11;
 
        System.setProperty("org.uncommons.reportng.escape-output", "false");
 
        Reporter.log("Executing the test"); // this will appear in our report
        Assert.assertTrue((a + b) == c);
        String message = "<font color = 'green'>" + "Test is successfully executed" + "</font>";
        Reporter.log(message); // this will also appear in our report but in green color
    }
 
}

现在,运行我们之前创建的同一个testng.xml文件,您将在生成的报告中看到测试成功执行,显示为绿色。

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知识的宝藏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值