1:ITestResult的功能
ITestResult是TestNG提供的一个接口 结合@AfterMethod使用类似监听器 可以监听@Test方法的执行状态等信息。
2:ITestResult的用法
2.1:不用ITestResult的结果是这样的
package TestNGEXT;
import static org.testng.Assert.assertEquals;
import org.junit.Assert;
import org.testng.ITestResult;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;
public class Demo_TestNG {
//Demo1会运行失败
@Test
public void Demo1(){
System.out.println("This is Demo1 Method");
// Assert.assertFalse(false);
assertEquals(false, true);
}
//Demo2会运行成功
@Test
public void Demo2(){
System.out.println("This is Demo1 Method");
assertEquals(true, true);
}
// @AfterMethod
// public void ITestResult_Demo(ITestResult result){
//
// System.out.println(result.getName());
//
// }
}
运行结果
2.2:使用ITestResult监听运行结果的状态
package TestNGEXT;
import static org.testng.Assert.assertEquals;
import org.junit.Assert;
import org.testng.ITestResult;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;
public class Demo_TestNG {
//Demo1会运行失败
@Test
public void Demo1(){
System.out.println("This is Demo1 Method");
// Assert.assertFalse(false);
assertEquals(false, true);
}
//Demo2会运行成功
@Test
public void Demo2(){
System.out.println("This is Demo1 Method");
assertEquals(true, true);
}
@AfterMethod
public void ITestResult_Demo(ITestResult result){
System.out.println("正在运行的方法是:"+result.getName());
}
}
运行结果
2.3:ITestResult方法概述
通过2.1和2.2我们可以看到 ITestResult方法可以对@Test方法进行监听
3:ITestResult的扩展使用
3.1:ITestResult接口有很多实现方法 方便监听@Test方法
ITestResult接口有很多实现方法 方便监听@Test方法
3.2:对@Test方法进行后处理(分状态进行处理)
例如:@Test方法运行成功/失败后不同的操作
@AfterMethod
public void ITestResult_Demo(ITestResult result){
//如果失败或者成功 对@Test方法进行操作处理
if(result.getStatus() == ITestResult.FAILURE){
System.out.println("正在运行的方法是失败的方法:"+result.getName());
}
}
ITestResult接口封装了它的状态码可以直接调用