- 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
广告