Maven surefire mode fork

par défaut maven surefile plugin exécute des tests dans un environnement isolé (Fourché). Vous pouvez modifier ce comportement avec la configuration suivante:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <configuration>
        <forkMode>never</forkMode>
      </configuration>
    </plugin>
  </plugins>
</build>

si vous devez déboguer vos tests, vous devez utiliser cet extrait de configuration. Ou vous pouvez simplement exécuter maven build de la façon suivante:

$ mvn -Dmaven.surefire.debug tests

ceci lancera un débogueur sur le port 5005.

ma question Est: Quels avantages ont stratégie de bifurcation et pourquoi est choisi comme stratégie par défaut pour Maven build? La stratégie de non-Forking n'est-elle pas plus simple et devrait donc être utilisée par défaut (maven est l'outil de convention sur la configuration, exact)?

23
demandé sur Pascal Thivent 2010-07-06 15:41:39

2 réponses

ma question Est: Quels avantages ont la stratégie de fourche et pourquoi est choisi comme stratégie par défaut pour Maven build?

par défaut, Surefire bifurque vos tests à l'aide d'un pot réservé au manifeste. L'OMI, les principaux avantages sont:

  1. il fournit un environnement isolé avec un chemin de classe en quelque sorte "correct".
  2. il protège le procédé maven lui-même (ce qui est une bonne chose, surtout si Maven est intégré dans votre IDE).

la stratégie de non-Forking n'est-elle pas plus simple et devrait donc être utilisée par défaut?

Simple pour quoi? Débogage facile à l'intérieur d'un IDE? Je pense que ce n'était pas l'intention initiale (et je préfère connecter un débogueur distant si le besoin se présente et garder le processus principal Maven sûr).

Voir aussi

16
répondu Pascal Thivent 2010-07-06 13:33:43

le mode bifurcation aide à charger classpath système s'il est réglé sur "true" ou "once". Mais il arrive parfois que le réglage du mode fourche= vraies erreurs caues comme " commmand line too long "ou" there are test failures " si le plugin maven-surefire 2.5 est utilisé. Pour éviter cette erreur, il est recommandé de ser forkmode=never whn en utilisant le plugin suefire 2.5

1
répondu Pushpinder Rattan 2010-10-20 19:45:02