当前位置: 首页 > 文档资料 > TestNG 中文教程 >

Custom Logging

优质
小牛编辑
131浏览
2023-12-01

我们之前读过有关TestNG为日志记录和报告提供的不同选项。 现在,让我们学习如何开始使用它们。 首先,我们将编写一个示例程序,我们将使用ITestListener接口进行记录。

创建测试用例类 (Create Test Case Class)

C:\》 TestNG_WORKSPACE创建一个java类,比如SampleTest.java

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);
   }
}

前面的测试类包含三个测试方法, testMethodOnetestMethodThree将在执行时传递,而testMethodTwo通过将false布尔值传递给Assert.assertTrue方法而失败,该方法用于测试中的真值条件。

创建自定义日志记录类

C:\》 TestNG_WORKSPACE创建另一个名为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 。 因此,无需从接口覆盖其他方法。 如果您愿意,可以直接实现界面。

Create testng.xml

C:\》 TestNG_WORKSPACE创建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类。

C:\TestNG_WORKSPACE>javac CustomListener.java SampleTest.java

现在,运行testng.xml。

C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE" 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将调用附加到测试套件的所有侦听器。

当我们需要在测试执行时看到测试执行的连续状态时,主要使用日志监听器。