J'ai une suite de tests de sélénium de concombre dans un projet Maven et j'ai récemment configuré le plug-in surefire pour exécuter mes tests en parallèle. Cela fonctionne très bien en exécutant simplement une commande semblable à celui-ci où test.runner.directory est une propriété déclarée dans le pom.xml
pour maintenir la valeur du chemin du fichier à mes coureurs de test de concombre:Problèmes lors de l'exécution de tests de concombres parallèles de Maven dans un fichier de commandes Windows
mvn -Dtest.runner.directory=mytestsrunnerdirectory clean test
Ensuite, je voulais pour écrire un fichier de commandes Windows pour envelopper cet appel. Voici donc ma tentative d'un fichier .bat
, dans lequel le chemin du fichier aux coureurs de test est passé en paramètre:
set testrunnerdirectory=%1
echo Running Seleium tests with Maven.
call mvn -Dtest.runner.directory=%testrunnerdirectory% clean test
echo Maven build completed
Lorsqu'il est exécuté, cela devient aussi loin que l'exécution avec succès mes tests en parallèle, mais le script se bloque simplement. Je vois tous les résultats des tests apparaître dans la fenêtre et j'observe que tous les tests fonctionnent et se terminent, mais je n'ai jamais de message "Build Success" et le script n'obtient jamais l'impression de mon dernier message d'écho. Il se bloque indéfiniment après la fin du test final. Il est intéressant de noter que si je mets test.runner.directory
dans un répertoire dans lequel il n'y a qu'un seul programme de test, tout fonctionne correctement (de toute évidence, cela ne lance qu'un seul thread de test) et le script se termine dans son intégralité. Mais il semble que le lancement de plusieurs threads le jette en quelque sorte et à un moment donné le focus ne peut pas être retourné à la fenêtre de commande d'origine.
Comme toujours, je serais extrêmement reconnaissant pour toute pensée/conseil. Je vous remercie.
Les tests de concombre sont, à ma connaissance, des tests d'intégration qui signifient généralement que vous ne pouvez pas les exécuter en parallèle ... la question est pourquoi le test est-il suspendu? – khmarbaise
Est-ce que les coureurs de test parallèle chance essaient d'écrire dans un seul fichier de rapport après la fin des tests? – Grasshopper
Merci pour les commentaires. Juste pour clarifier, quand j'appelle maven directement à partir de la ligne de commande, c'est-à-dire pas à travers mon script batch, tous les tests se déroulent en parallèle et se terminent avec succès. Je ne fais l'expérience de cette suspension lorsque je tente de faire l'appel Maven à partir d'un script de lot. –