首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

TestNG 失敗重跑:IRetryAnalyzer 實現與 XML 配置

     編輯:程式設計綜合問答

核心接口:IRetryAnalyzer


public class MyRetry implements IRetryAnalyzer {
    private int count = 0;
    private static final int MAX = 2;

    @Override
    public boolean retry(ITestResult result) {
        if (count < MAX) {
            count++;
            return true; // 重跑
        }
        return false;
    }
}

綁定方式

方法級註解


@Test(retryAnalyzer = MyRetry.class)
public void flakyTest() { ... }

全局 XML 配置 (testng.xml)



  
     
  
  
    
      
    
  

動態注入 Listener (IAnnotationTransformer)


public class MyRetryListener implements IAnnotationTransformer {
    @Override
    public void transform(ITestAnnotation annotation, Class testClass,
                          Constructor testConstructor, Method testMethod) {
        annotation.setRetryAnalyzer(MyRetry.class);
    }
}

注意事項

  • 重跑會重新執行 @BeforeMethod/@AfterMethod。
  • 報告中默認只顯示最後一次結果,需自定義 Reporter 記錄重跑歷史。
  • 數據驅動測試 (@DataProvider) 重跑會重新迭代所有數據。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved