2017-07-10 4 views
0

Je veux les suites de test parallèles de maven. mon pom.xml ressemble ci-dessous:Comment faire pour exécuter des suites parallèles dans maven et Testng

<profiles> 
     <profile> 
      <id>API_AUTOMATION</id> 
      <build> 
       <plugins> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-surefire-plugin</artifactId> 
         <version>2.19.1</version> 
         <configuration> 
          <parallel>suites</parallel> 
          <threadCount>8</threadCount> 
          <suiteXmlFiles> 
           <!-- TestNG suite XML files --> 
           <suiteXmlFile>./module1.xml</suiteXmlFile>        
          <suiteXmlFile>./module2.xml</suiteXmlFile> 
          </suiteXmlFiles> 
          <testSourceDirectory>src/main/java</testSourceDirectory> 
         </configuration> 
        </plugin> 
       </plugins> 
      </build> 
     </profile> 
</profiles> 

tous les fichiers sont .xml fichier TestNG qui sont des suites de tests. s'il vous plaît laissez-moi savoir, comment faire fonctionner les suites en parallèle.

+0

ajouter une description S'il vous plaît d'erreur à votre question par l'édition. Bien que la [documentation de Surefire] (http://maven.apache.org/surefire/maven-surefire-plugin/examples/testng.html#Running_Tests_in_Parallel) indique que ce devrait être '' pas '' cela fonctionne dans mon test (probablement une erreur, au début il dit '' aussi). Le reste semble OK aussi. –

+0

J'ai lancé le test en utilisant la commande suivante 'mvn clean test -Dmaven.test.failure.ignore = true -Djdk.level = 1.7 -P API_AUTOMATION' mais il n'a pas exécuté le test en parallèle, il a fonctionné dans l'ordre séquentiel. –

+1

Vous pouvez essayer avec la propriété 8 et ne pas définir la propriété count count ou le définir comme 0. – Murthi

Répondre

1

Vous pouvez essayer avec <threadCountSuites>8</threadCountSuites> propriété et ne propriété nombre de threads pas encore défini ou définir comme 0.

1

Parallelmode "suites" n'est pas pris en charge par TestNG, ni via Surefire, ni via un type d'exécution de TestNG.

De l'command line options dans la documentation:

-parallel methods|tests|classes If specified, sets the default 
             mechanism used to determine how 
             to use parallel threads when 
             running tests. If not set, 
             default mechanism is not to use 
             parallel threads at all. This can 
             be overridden in the suite 
             definition. 

La preuve se trouve dans le v6.11 sources of XmlSuite:

public class XmlSuite implements Serializable, Cloneable { 
    /** Parallel modes */ 
    public enum ParallelMode { 
    TESTS("tests", false), METHODS("methods"), CLASSES("classes"), INSTANCES("instances"), NONE("none", false), 

    ... 
    } 
    ... 
} 

Ceci est valable pour TestNG 6.11 et versions antérieures. Vous pouvez ajouter les tests de plusieurs fichiers .xml dans un fichier .xml avec multiple <test> nodes et define the parallelism in the testng.xml pour être tests.