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