- TestNG 教程
- TestNG - 首页
- TestNG - 概述
- TestNG - 环境
- TestNG - 编写测试
- TestNG - 基本注解
- TestNG - 执行过程
- TestNG - 执行测试
- TestNG - 套件测试
- TestNG - 忽略测试
- TestNG - 组测试
- TestNG - 异常测试
- TestNG - 依赖测试
- TestNG - 参数化测试
- TestNG - 运行 JUnit 测试
- TestNG - 测试结果
- TestNG - 注解转换器
- TestNG - 断言
- TestNG - 并行执行
- TestNG - 与 ANT 集成
- TestNG - 与 Eclipse 集成
- TestNG - TestNG 与 JUnit 的比较
- TestNG 有用资源
- TestNG - 快速指南
- TestNG - 有用资源
- TestNG - 讨论
TestNG - 自定义日志
我们之前了解了 TestNG 提供的不同日志记录和报告选项。现在,让我们学习如何开始使用它们。首先,我们将编写一个示例程序,其中我们将使用 ITestListener 接口进行日志记录。
创建测试用例类
创建一个 Java 类,例如,SampleTest.java 在 /work/testng/src 中。
import org.testng.Assert;
import org.testng.annotations.Test;
public class SampleTest {
@Test
public void testMethodOne() {
Assert.assertTrue(true);
}
@Test
public void testMethodTwo() {
Assert.assertTrue(false);
}
@Test(dependsOnMethods={"testMethodTwo"})
public void testMethodThree() {
Assert.assertTrue(true);
}
}
前面的测试类包含三个测试方法,其中testMethodOne 和testMethodThree 在执行时将通过,而testMethodTwo 通过向 Assert.assertTrue 方法传递一个false 布尔值使其失败,该方法用于测试中的真值条件。
创建自定义日志类
在/work/testng/src 中创建另一个名为CustomListener.java的新类。
import org.testng.ITestResult;
import org.testng.TestListenerAdapter;
public class CustomListener extends TestListenerAdapter{
private int m_count = 0;
@Override
public void onTestFailure(ITestResult tr) {
log(tr.getName()+ "--Test method failed\n");
}
@Override
public void onTestSkipped(ITestResult tr) {
log(tr.getName()+ "--Test method skipped\n");
}
@Override
public void onTestSuccess(ITestResult tr) {
log(tr.getName()+ "--Test method success\n");
}
private void log(String string) {
System.out.print(string);
if (++m_count % 40 == 0) {
System.out.println("");
}
}
}
上述类扩展了TestListenerAdapter,它实现了ITestListener 并包含空方法。因此,无需覆盖接口中的其他方法。如果您愿意,可以直接实现接口。
创建 testng.xml
在/work/testng/src 中创建 testng.xml 以执行测试用例。
<?xml version = "1.0" encoding = "UTF-8"?>
<suite name = "Simple Logger Suite">
<listeners>
<listener class-name = "CustomListener" />
</listeners>
<test name = "Simple Logger test">
<classes>
<class name = "SampleTest" />
</classes>
</test>
</suite>
使用 javac 编译 SampleTest 和 CustomListener 类。
/work/testng/src$ javac CustomListener.java SampleTest.java
现在,运行 testng.xml。
/work/testng/src$ java org.testng.TestNG testng.xml
验证输出。
testMethodOne--Test method success testMethodTwo--Test method failed testMethodThree--Test method skipped =============================================== Simple Logger Suite Total tests run: 3, Failures: 1, Skips: 1 ===============================================
我们创建了一个自定义日志记录器类,它实现了 ITestListener 接口并将其自身作为侦听器附加到 TestNG 测试套件。当测试开始、测试失败、测试成功等时,TestNG 会调用此侦听器类的的方法。可以实现多个侦听器并将其添加到测试套件执行中,TestNG 将调用附加到测试套件的所有侦听器。
当我们需要在测试执行期间查看测试执行的持续状态时,主要使用日志记录侦听器。
testng_test_results.htm
广告