4

Je ne peux pas obtenir plus de deux threads en même temps en utilisant le combo Maven + Surefire. J'ai expérimenté un certain nombre de combinaisons de paramètres threadCount, perCoreThreadCount et useUnlimitedThreads, mais je ne peux jamais faire mieux que deux threads. Voir la capture d'écran ci-jointe: il y aura ~ 12 fenêtres Firefox, mais seulement deux "conduite" en même temps.Comment exécuter plus de 2 threads avec Surefire + Maven?

enter image description here

Ma machine a 4 cœurs de 2,6 Ghz Core i7 en elle, donc il est pas comme je frappais encore être limite matérielle.

Voici un exemple de l'une des configurations Surefire:

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.7.2</version> 
      <configuration> 
       <includes> 
        <include>**/*Test*.*</include> 
       </includes> 
       <threadCount>10</threadCount> 
       <perCoreThreadCount>true</perCoreThreadCount> 
       <parallel>classes</parallel> 
      </configuration> 
     </plugin> 

Pour mes tests, j'utilise Scala enveloppé dans un coureur de JUnit. Chaque test est dans sa propre classe. Mon JUnit est 4.10, Maven 3.04 je pense.

+1

Je ne pense pas que ces options fonctionnent sur '2.7.2' de Surefire. Avez-vous essayé de passer à la dernière version? –

+0

Quelle est la dernière version? Il semble que notre équipe se dirige vers l'utilisation du coureur ScalaTest, qui a un support parallèle plus efficace (dans notre test). –

+0

La dernière version est toujours dans le top RHS du [site plugin] [1]. Ie '2.12.4' [1]: http://maven.apache.org/surefire/maven-surefire-plugin/ –

Répondre

0

Essayez de définir MAVEN_OPTS = -Dmaven.artifact.threads = 10 dans la variable d'environnement Maven.

Ou utilisez le paramètre "-T" lorsque vous exécutez mvn.

Exemples:

mvn -T 4 installation propre # construit avec 4 fils

mvn -T 1C installation propre # 1 fil par noyau cpu

mvn -T 1.5C install clean # 1.5 thread par cpu core

Vous pouvez spécifier le nombre de threads ou même le nombre de cœurs, puisque vous utilisez Maven 3.x.

Pour plus d'informations, jetez un oeil à ce lien: https://cwiki.apache.org/confluence/display/MAVEN/Parallel+builds+in+Maven+3

Hope it helps!

0

FWIW J'ai eu un problème similaire. Il s'avère que j'essayais d'exécuter des classes de test à partir de différentes catégories JUnit, mais mis en parallèle à classes.

Les classes de chaque catégorie étaient en effet exécutées en parallèle, mais les catégories étaient exécutées en série.

je fini par mettre à jour ma configuration à sécurité intrinsèque

<configuration> 
    <parallel>suitesAndClasses</parallel>       
    <useUnlimitedThreads>true</useUnlimitedThreads> 
    <threadCountClasses>4</threadCountClasses> 
</configuration> 
Questions connexes