天天看點

TestNG測試架構的使用-ITestResult1:ITestResult的功能2:ITestResult的用法3:ITestResult的擴充使用

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());
//		
//	}

}
           

運作結果

TestNG測試架構的使用-ITestResult1:ITestResult的功能2:ITestResult的用法3:ITestResult的擴充使用

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());
		
	}

}
           

運作結果

TestNG測試架構的使用-ITestResult1:ITestResult的功能2:ITestResult的用法3:ITestResult的擴充使用

2.3:ITestResult方法概述

通過2.1和2.2我們可以看到 ITestResult方法可以對@Test方法進行監聽

3:ITestResult的擴充使用

3.1:ITestResult接口有很多實作方法 友善監聽@Test方法

ITestResult接口有很多實作方法 友善監聽@Test方法

TestNG測試架構的使用-ITestResult1:ITestResult的功能2:ITestResult的用法3:ITestResult的擴充使用

3.2:對@Test方法進行後處理(分狀态進行處理)

例如:@Test方法運作成功/失敗後不同的操作

@AfterMethod
	public void ITestResult_Demo(ITestResult result){
		//如果失敗或者成功 對@Test方法進行操作處理
		if(result.getStatus() == ITestResult.FAILURE){
			
			System.out.println("正在運作的方法是失敗的方法:"+result.getName());
		}	
		
	}
           

ITestResult接口封裝了它的狀态碼可以直接調用

TestNG測試架構的使用-ITestResult1:ITestResult的功能2:ITestResult的用法3:ITestResult的擴充使用