2017-09-01 3 views
1

J'utilise le code suivant pour obtenir le nombre des cas de test sautées comptercas de test incorrect compte pour les tests sautées dans 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); 
       } 
       } 
      } 
     } 

Mais beaucoup des moments où la suite exécute complètement le nombre de cas de test sautée donne comptage de toutes les méthodes ignorées (c'est-à-dire incluant beforeclass sauté, avant la méthode skipped..etc) plutôt que simplement le nombre de cas de test sautés.

Faites-moi savoir s'il vous plaît ce que je manque.

Répondre

0

Vous pouvez filtrer tous les non test méthodes de votre jeu à la fin, comme indiqué ci-dessous

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