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