2009-11-25 10 views
2

On m'a demandé de configurer le générateur de rapport surefire de Maven pour inclure une entrée pour la suite de tests qui à son tour teste les classes A, B et C mais au lieu de voir ceci: A B C MySuite Je vois ce A B C A B CLes rapports Maven Surefire affichent plusieurs entrées de classe plutôt qu'une suite

donc, il y a deux problèmes vraiment: 1) Comment puis-je arrêter les tests en cours deux fois. 2) Comment puis-je obtenir le rapport pour me montrer une entrée par classe ou suite? Vous pouvez vous demander pourquoi est-ce si important, la réponse est que l'architecte veut voir un test qui englobe tout le 'composant' et montre une entrée dans le rapport pour cela et je ne veux pas que les tests soient exécutés deux fois, (ou même plus) fois.

Merci et salutations,

CM

Répondre

0

Avez-vous préciser votre suite de test dans la configuration infaillible avec quelque chose comme ceci:

<includes> 
    <include>**/AppTestSuite.java</include> 
</includes> 

Qu'est-ce que le rapport ressemble avec cette configuration?

+0

Salut, oui J'ai mais comme je l'ai dit, il affiche juste les résultats (à nouveau) des classes de la suite exécute plutôt que d'ajouter une entrée pour la suite elle-même. Il semble que le rapport surefire recueille juste les résultats à l'intérieur des fichiers de surefire et les liste plutôt que de se soucier d'où ils viennent. –

2

Pour répondre à votre première question, veuillez noter qu'il existe un plugin Surefire de création et de reporting. Par conséquent, lorsqu'il est imbriqué dans les deux éléments, les éléments build et reporting s'exécutent naturellement deux fois. Vous pouvez éviter cela en utilisant l'objectif report-only dans votre élément de rapport:

<project> 
    ... 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-surefire-plugin</artifactId> 
     <version>2.4.3</version> 
     <configuration> 
      <includes> 
      <include>test/my/Suite.java</include> 
      </includes> 
      <excludes> 
      <exclude>test/my/NoTestClass.java</exclude> 
      </excludes> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 

    <reporting> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-surefire-report-plugin</artifactId> 
     <version>2.4.3</version> 
     <reportSets> 
      <reportSet> 
      <reports> 
       <report>report-only</report> 
      </reports> 
      </reportSet> 
     </reportSets> 
     </plugin> 
    </plugins> 
    </reporting> 
    ... 
</project> 

En ce qui concerne votre deuxième question, il pourrait descendre le cadre de test que vous utilisez et comment vos cas de test sont conçus. Plus de détails sont nécessaires pour répondre à cette partie de la question.