2017-09-01 1 views
1

verwendete ich den folgenden Code, um die Zählung der übersprungenen Testfälle zu bekommen zählenFalsche Testfälle für übersprungenen Tests in testng zählen

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

Aber viele der Zeiten, in denen Suite bietet vollständig der übersprungenen Testfall ausführt Zählung Zählung aller übersprungenen Methoden (dh einschließlich Klasse übersprungen, vor Methode übersprungen..etc) und nicht nur die Anzahl der übersprungenen Testfälle.

Bitte lassen Sie mich wissen, was ich vermisse.

Antwort

0

Sie können alle Non-Test herauszufiltern Methoden aus dem Satz am Ende, wie weiter unten

gezeigt
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); 
       } 
      } 
     } 
    } 
} 
Verwandte Themen