TestNG - 基本註解 - 監聽器



@Listeners 註解定義了測試類上的監聽器。@Listeners 註解的方法監聽某些事件,並在測試執行的每個階段執行某些操作的同時跟蹤測試執行情況。事件可以是任何內容,例如測試方法的成功、測試方法的失敗、測試方法的開始等。

以下是一些允許您修改 TestNG 行為的監聽器或介面

  • IAnnotationTransformer

  • IAnnotationTransformer2

  • IHookable

  • IInvokedMethodListener

  • IMethodInterceptor

  • IReporter

  • ISuiteListener

  • ITestListener

@Listeners 可以實現於 *類級別* 和 *套件級別*

以下是 @Listeners 註解支援的屬性列表

屬性 描述

value

擴充套件 org.testng.ITestNGListener 的類的陣列

建立測試用例類

讓我們看看如何使用 TestNG 監聽器呼叫測試方法。

  • 建立一個 Java 測試類,例如,在 /work/testng/src 中建立 SimpleTestClass.java

  • 向您的測試類新增測試方法 sum() 和 testtofail()。

  • 向 sum() 和 testtofail() 方法添加註解 @Test。

以下是 SimpleTestClass.java 的內容

  import org.testng.Assert;
  import org.testng.annotations.Test;

  public class SimpleTestClass {

  	@Test
  	public void sum()
  	{
  		int sum=0;
  		int a=15;
  		int b=27;
  		sum=a+b;
  		System.out.println("sum="+sum);
  	}
  	@Test
  	public void testtofail()
  	{
  		System.out.println("Test case has failed");
  		Assert.assertTrue(false);
  	}
  }

建立監聽器測試類

建立一個另一個 Java 類,例如,在 /work/testng/src 中建立 TestListener.java。我們將實現 ITestListener

  • ITestListener 包含以下方法

    • onTestStart - 當任何測試開始時呼叫 onTestStart 方法。

    • onTestSuccess - 當任何測試成功時呼叫 onTestSuccess 方法。

    • onTestFailure - 當任何測試失敗時呼叫 onTestFailure 方法。

    • onTestSkipped - 當任何測試被跳過時呼叫 onTestSkipped 方法。

    • onTestFailedButWithinSuccessPercentage - 每次測試失敗但在成功百分比範圍內時呼叫此方法。

    • onFinish - 在所有測試執行完畢後呼叫 onFinish 方法。

TestListener.java 如下所示

  import org.testng.ITestContext;
  import org.testng.ITestListener;
  import org.testng.ITestResult;

  public class TestListener  implements ITestListener   {
  	@Override
  	public void onTestStart(ITestResult result) {
  	}

  	@Override
  	public void onTestSuccess(ITestResult result) {
  	System.out.println("Success of test cases and its details are : "+result.getName());
  	}

  	@Override
  	public void onTestFailure(ITestResult result) {
  	System.out.println("Failure of test cases and its details are : "+result.getName());
  	}

  	@Override
  	public void onTestSkipped(ITestResult result) {
  	System.out.println("Skip of test cases and its details are : "+result.getName());
  	}

  	@Override
  	public void onTestFailedButWithinSuccessPercentage(ITestResult result) {
  	System.out.println("Failure of test cases and its details are : "+result.getName());
  	}

  	@Override
  	public void onStart(ITestContext context) {
  	// TODO Auto-generated method stub
  	}

  	@Override
  	public void onFinish(ITestContext context) {
  	// TODO Auto-generated method stub
  	}
  }

建立 testng.xml

接下來,讓我們在 /work/testng/src 中建立 testng.xml 檔案來執行測試用例。此檔案以 XML 格式捕獲您的整個測試過程。此檔案使您可以輕鬆地在單個檔案中描述所有測試套件及其引數,您可以將其檢入程式碼儲存庫或透過電子郵件傳送給同事。它還可以輕鬆提取測試子集或拆分多個執行時配置(例如,testngdatabase.xml 只執行測試您的資料庫的測試)。

  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
  <suite name="Suite">
    <listeners>
      <listener class-name="TestListener"/>
    </listeners>
    <test thread-count="5" name="Test">
      <classes>
        <class name="SimpleTestClass"/>
      </classes>
    </test> <!-- Test -->
  </suite> <!-- Suite -->

如您所見,我們需要在此 XML 檔案中定義監聽器。

使用 javac 編譯測試用例。

/work/testng/src$ javac SimpleTestClass.java TestListener.java

現在,執行 testng.xml,這將執行在 <test> 標籤中定義的測試用例。

/work/testng/src$ java org.testng.TestNG testng.xml

驗證輸出。

  sum=42
  Success of test cases and its details are : sum
  Test case has failed
  Failure of test cases and its details are : testtofail

  ===============================================
  Suite
  Total tests run: 2, Passes: 1, Failures: 1, Skips: 0
  ===============================================

廣告
© . All rights reserved.