2017-08-25 8 views
0

Pour une liste de classes (que je peux spécifier comme une liste d'includes), je veux courir avec forkMode = toujours parce qu'elles affectent l'état statique (code existant).Dans maven, comment exécuter des configurations séparées pour différentes classes de test de junit

Pour les classes restantes (que je peux spécifier en excluant les classes ci-dessus), je veux courir avec forkMode = never, ou une autre configuration. La motivation est que les tests prenaient une éternité à s'exécuter avec forkMode = always, car le classloader continue de devoir tout recharger, juste pour exécuter des tests d'une classe de test!

Quelques autres détails: - toutes les classes tests doivent fonctionner dans le même profil (à savoir: la libération -P)

Est-il possible d'avoir juste multiples:

<plugin> 
    <artifactId>maven-surefire-plugin</artifactId> 

dans le même profil?

Répondre

2

Une façon que je pouvais penser y parvenir est de définir plusieurs exécutions:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.19.1</version> 
    <executions> 
     <execution> 
      <id>legacy-tests</id> 
      <phase>test</phase> 
      <goals> 
       <goal>test</goal> 
      </goals> 
      <configuration> 
       <excludes> 
        <exclude>**/RemainingClasses*.java</exclude> 
       </excludes> 
       <includes> 
        <include>**/LegacyClasses*.java</include> 
       </includes> 
       <forkMode>always</forkMode> 
      </configuration> 
     </execution> 
     <execution> 
      <id>other-tests</id> 
      <phase>test</phase> 
      <goals> 
       <goal>test</goal> 
      </goals> 
      <configuration> 
       <includes> 
        <include>**/RemainingClasses*.java</include> 
       </includes> 
       <excludes> 
        <exclude>**/LegacyClasses*.java</exclude> 
       </excludes> 
       <forkMode>never</forkMode> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

De l'autre côté, vous pouvez migrer d'utiliser reuseForks and forkCount à la place.

+1

C'est ce que j'ai fini par faire. La seule différence est que j'avais besoin d'un identifiant avec "default-test" ou sinon maven exécute tout, test de legs, autres tests. – joseph

+0

@joseph Glad qui a aidé. (Y) – nullpointer