testng擴充套件 失敗的用例重跑
新建包TestngRetry , implements IRetryAnalyzer實現重跑功能
implements 是實現多個介面, 介面的方法一般為空的, 必須重寫才能使用
import org.testng.IRetryAnalyzer;
import org.testng.ITestResult;
import org.testng.Reporter;
import com.test.utils.PropertiesDataProvider;
public class TestngRetry implements IRetryAnalyzer {
private int retryCount = 1;
private static int maxRetryCount;
static {
maxRetryCount = 2;//重跑的次數
String sourcecodedir = src;//原始碼路徑
String sourcecodeencoding = UTF-8;//原始碼編碼
}
public boolean retry(ITestResult result) {
if (retryCount <= maxRetryCount) {
String message = result.getName()+" 測試用例執行失敗!即將重跑第 ["+ retryCount + "]次 :class [" + result.getTestClass().getName();
logger.info(message);
Reporter.setCurrentTestResult(result);
Reporter.log("RunCount=" + (retryCount + 1));
retryCount++;
return true;
}
return false;
}
public static int getMaxRetryCount() {
return maxRetryCount;
}
public int getRetryCount() {
return retryCount;
}
}
新建RetryListener,implements IAnnotationTransformer
重寫transform方法,讀取TestngRetry的重跑設定
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import org.testng.IAnnotationTransformer;
import org.testng.IRetryAnalyzer;
import org.testng.annotations.ITestAnnotation;
public class RetryListener implements IAnnotationTransformer {
@SuppressWarnings("rawtypes")
public void transform(ITestAnnotation annotation, Class testClass, Constructor testConstructor, Method testMethod) {
IRetryAnalyzer retry = annotation.getRetryAnalyzer();
if (retry == null) {
annotation.setRetryAnalyzer(TestngRetry.class);
}
}
}
最後在xml檔案中加入監聽器RetryListener
<listeners>
<listener class-name="com.test.listener.RetryListener" />
</listeners>
相關文章
- TestNG測試框架之失敗測試重跑框架
- TestNg 失敗用例重試自動被 ignored 怎麼辦?
- TestNg失敗重跑—解決使用 dataProvider 引數化用例次數衝突問題IDE
- python擴充套件檔案import失敗Python套件Import
- TestNG測試用例重跑詳解及實踐最佳化
- 討論:何謂擴充套件用例?套件
- ?用Chrome擴充套件管理器, 管理你的擴充套件Chrome套件
- Homestead Composer install 擴充套件 所有的 bin/*的都安裝失敗套件
- 解決debian7下安裝GD擴充套件失敗的問題套件
- kotlin 擴充套件(擴充套件函式和擴充套件屬性)Kotlin套件函式
- Pytest學習筆記9-失敗重跑筆記
- 重構 - 設計API的擴充套件機制API套件
- 解決virtualbox下Ubuntu磁碟擴充套件後修改fstab啟動失敗的記錄Ubuntu套件
- 如何重試 TestNg 中引數化的單條用例?
- WCF擴充套件:行為擴充套件Behavior Extension套件
- 重學ES6 函式的擴充套件(上)函式套件
- 重讀 ES6 — 陣列、物件的擴充套件陣列物件套件
- VSCode擴充套件應用VSCode套件
- easyui應用(四)--- easyui擴充套件UI套件
- 並查集擴充套件應用並查集套件
- 修改或者擴充套件jQuery的方法程式碼例項套件jQuery
- 【Kotlin】擴充套件屬性、擴充套件函式Kotlin套件函式
- ORACLE 11G 擴充套件表空間增加資料檔案導致DG日誌應用失敗Oracle套件
- 實用的可選項(Optional)擴充套件套件
- Mac Safari上有趣實用的擴充套件Mac套件
- Sanic 擴充套件套件
- ORACLE 擴充套件Oracle套件
- 擴充套件工具套件
- 擴充套件歐幾里得套件
- DOM擴充套件套件
- 擴充套件ACL套件
- Lua擴充套件套件
- 照片擴充套件套件
- 擴充套件篇套件
- disable or 擴充套件套件
- 擴充套件表套件
- Mybatis擴充套件MyBatis套件
- PHP擴充套件開發就是一個自己的PHP擴充套件PHP套件