易百教程

15、TestNG中@Listener注解有什么用?

TestNG 提供了不同类型的侦听器,它们可以在事件触发时执行不同的操作。TestNG 中使用最广泛的监听器是 ITestListener 接口。ITestListener 接口包含 onTestSuccess、onTestfailure、onTestSkipped 等方法。

以下是可以制作的场景:

  • 如果测试用例失败,那么侦听器应该执行什么操作。
  • 如果测试用例通过了,那么监听器应该执行什么动作。
  • 如果测试用例被跳过,那么侦听器应该执行什么操作。

让我们通过一个例子来理解。

package com.yiibai;  
import org.testng.Assert;  
import org.testng.annotations.Listeners;  
import org.testng.annotations.Test;  
@Listeners(com.yiibai.Listener.class)  
public class Test_cases  
{  

 @Test  
 public void test_to_success()  
 {  
     Assert.assertTrue(true);  
 }  
 @Test  
 public void test_to_fail()  
 {  
     Assert.assertTrue(false);  
 }  

}

Listener.java

package com.yiibai;  
import org.testng.ITestContext;  
import org.testng.ITestListener;  
import org.testng.ITestResult;  
public class Listener implements ITestListener   
{  
@Override  
public void onTestStart(ITestResult result) {  
// TODO Auto-generated method stub  
}  
@Override  
public void onTestSuccess(ITestResult result) {  
// TODO Auto-generated method stub  
System.out.println("Success of test cases and its details are : "+result.getName());  
}  
@Override  
public void onTestFailure(ITestResult result) {  
// TODO Auto-generated method stub  
System.out.println("Failure of test cases and its details are : "+result.getName());  
}  
@Override  
public void onTestSkipped(ITestResult result) {  
// TODO Auto-generated method stub  
System.out.println("Skip of test cases and its details are : "+result.getName());  
}  
@Override  
public void onTestFailedButWithinSuccessPercentage(ITestResult result) {  
// TODO Auto-generated method stub  
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  
}}