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

前面的測試類包含三個測試方法,其中testMethodOnetestMethodThree 在執行時將透過,而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
廣告

© . All rights reserved.