2017-09-01 70 views
1

計數跳過測試中,我用下面的代碼來獲得的跳過測試用例的次數內錯誤的測試案例TestNG中

public void onFinish(ITestContext context) { 
    skippedTests =context.getSkippedTests().getAllResults(); 

    for (ITestResult temp : skippedTests) { 
      ITestNGMethod method = temp.getMethod(); 
      if (context.getSkippedTests().getResults(method).size() > 1) { 
       skippedTests.remove(temp);} else { 
       if (context.getPassedTests().getResults(method).size() > 0) { 
        skippedTests.remove(temp); 
       } 
       else{if(context.getFailedTests().getResults(method).size() > 0){ 
       skippedTests.remove(temp); 
       } 
       } 
      } 
     } 

但許多倍的套件執行時完全跳過的測試用例數給出計數所有跳過的方法(即包括beforeclass跳過,方法跳過之前等),而不僅僅是跳過的測試用例的計數。

請讓我知道我失蹤了。

回答

0

您可以在最後過濾掉所有非測試從您所設定的方法,如下圖所示

public void onFinish(ITestContext context) { 
    Set<ITestResult> skippedTests = context.getSkippedTests().getAllResults(); 

    for (ITestResult temp : skippedTests) { 
     ITestNGMethod method = temp.getMethod(); 
     //If the method is not a @Test annotated method, then lets remove that from the skipped lists 
     if (!method.isTest()) { 
      skippedTests.remove(temp); 
      continue; 
     } 
     if (context.getSkippedTests().getResults(method).size() > 1) { 
      skippedTests.remove(temp); 
     } else { 
      if (context.getPassedTests().getResults(method).size() > 0) { 
       skippedTests.remove(temp); 
      } else { 
       if (context.getFailedTests().getResults(method).size() > 0) { 
        skippedTests.remove(temp); 
       } 
      } 
     } 
    } 
}