TestNG中 ITestListener 的使用

1.关于testng中ITestListener 的相关介绍文档,请参考:

http://javadox.com/org.testng/testng/6.8.7/org/testng/ITestListener.html

2.ITestListener 的实际相关应用

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

//implements实现接口ITestListener
public class customListener implements ITestListener{
    
    public void onFinish(ITestContext context) {
        System.out.println("finish test");
    }

    public void onStart(ITestContext context) {
        System.out.println("start test");
    }
    
    public void onTestFailedButWithinSuccessPercentage(ITestResult result) {
        System.out.println("Result fail but with success percentage");
    }

    @Override
    public void onTestFailure(ITestResult result) {
        System.err.println(result.getTestClass().getName() + "." + result.getMethod().getMethodName() + " : failed");
        
    }
    @Override
    public void onTestSkipped(ITestResult result) {
        System.err.println(result.getTestClass().getName() + "." + result.getMethod().getMethodName() + " : skipped");
        
    }


    public void onTestStart(ITestResult result) {
        System.out.println("***start on test***"+ result.getMethod().getMethodName() );

    }

    public void onTestSuccess(ITestResult result) {
        
        System.err.println(result.getTestClass().getName() + "." + result.getMethod().getMethodName() + " : passed");
    }


}

注意:下面方法一和方法二用的是同一个类(customListener )

方法一:采用注释法添加监听设置

import org.testng.annotations.Listeners;
import org.testng.annotations.Test;

public class testforCustomList {
	
	
	@Listeners(customListener.class)//此处指明了使用自定义的listener。
	public class listenerTest {

	    @Test
	    public void listener1(){
	        System.out.println("it is the first test");
	    }

	    @Test
	    public void listener2(){
	        System.out.println("it is the second test");
	    }
	}
}

  测试结果如下:

[RemoteTestNG] detected TestNG version 6.8.9
[TestNG] Running:
  C:UsersAdministratorAppDataLocalTemp	estng-eclipse-1101982489	estng-customsuite.xml

start test
***start on test***listener1
it is the first test
WebDriverAPI.testforCustomList$listenerTest.listener1 : passed***start on test***listener2

WebDriverAPI.testforCustomList$listenerTest.listener2 : passed
it is the second test
finish test
PASSED: listener1
PASSED: listener2

===============================================
    Default test
    Tests run: 2, Failures: 0, Skips: 0
===============================================


===============================================
Default suite
Total tests run: 2, Failures: 0, Skips: 0
===============================================

[TestNG] Time taken by [FailedReporter passed=0 failed=0 skipped=0]: 0 ms
[TestNG] Time taken by org.testng.reporters.jq.Main@3b6eb2ec: 50 ms
[TestNG] Time taken by org.testng.reporters.EmailableReporter2@7a0ac6e3: 10 ms
[TestNG] Time taken by org.testng.reporters.SuiteHTMLReporter@43a25848: 80 ms
[TestNG] Time taken by org.testng.reporters.JUnitReportReporter@2d6e8792: 10 ms
[TestNG] Time taken by org.testng.reporters.XMLReporter@5b464ce8: 10 ms

方法二:使用testng.xml实现监听设置

import org.testng.annotations.Test;

public class testforCustomList {

    public class listenerTest {

        @Test
        public void listener1(){
            System.out.println("it is the first test");
        }

        @Test
        public void listener2(){
            System.out.println("it is the second test");
        }
    }
}

XML:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="webTest">
    <listeners>
        <listener class-name="WebDriverAPI.customListener"></listener>
    </listeners>
    <test name="listener test">

        <classes>
            <class name="WebDriverAPI.testforCustomList" />
        </classes>

    </test>
</suite>

运行结果:

[RemoteTestNG] detected TestNG version 6.8.9
[TestNG] Running:
  F:workplacewebTest	estngXMLlistener.xml

start test
***start on test***listener1
it is the first test
WebDriverAPI.testforCustomList$listenerTest.listener1 : passed
WebDriverAPI.testforCustomList$listenerTest.listener2 : passed
***start on test***listener2
it is the second test
finish test

===============================================
webTest
Total tests run: 2, Failures: 0, Skips: 0
===============================================
原文地址:https://www.cnblogs.com/lanbing/p/8483798.html