IExecutionListener is used to to monitor when a TestNG run starts and ends.
IExecutionListener provide following methods.
Method
|
Description
|
void onExecutionStart()
|
Invoked before the TestNG run starts.
|
void onExecutionFinish()
|
Invoked once all the suites have been run
|
Find the below working application.
Step 1: Implement IExecutionListener interface
CustomExecutionListener.java
package com.sample.app.tests;
import org.testng.IExecutionListener;
public class CustomExecutionListener implements IExecutionListener{
public void onExecutionStart() {
System.out.println("TestNG about to start execution");
}
public void onExecutionFinish() {
System.out.println("All the test cases are executed");
}
}
Step 2: Define test classes.
Test1.java
package com.sample.app.tests;
import org.testng.annotations.Test;
public class Test1 {
@Test
public void A() {
System.out.println("Inside Test1 A");
}
}
Test2.java
package com.sample.app.tests;
import org.testng.annotations.Test;
public class Test2 {
@Test
public void A() {
System.out.println("Inside Test2 A");
}
}
Step 3: Define suite. Create ‘execListener.xml’ file in the same package where the test classes are defined.
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd" >
<suite name="sanity test suite" time-out="5000">
<listeners>
<listener
class-name="com.sample.app.tests.CustomExecutionListener"></listener>
</listeners>
<test name="Demo test app">
<classes>
<class name="com.sample.app.tests.Test1"></class>
<class name="com.sample.app.tests.Test2"></class>
</classes>
</test>
</suite>
How to run the suite?
Right click on ‘execListener.xml’ file -> Run As -> TestNG Suite.
You will see below messages in console.
[RemoteTestNG] detected TestNG version 7.0.0 TestNG about to start execution Inside Test1 A Inside Test2 A =============================================== sanity test suite Total tests run: 2, Passes: 2, Failures: 0, Skips: 0 =============================================== All the test cases are executed
No comments:
Post a Comment