J'ai un projet Web Maven pour lequel j'essaie d'exécuter quelques tests d'interface utilisateur Web Spock simples sous Eclipse avec Selenium et Chromedriver. Je peux exécuter chaque classe de test individuellement en cliquant dessus et en sélectionnant "Exécuter en tant que> Test Junit" si j'ajoute ce qui suit aux arguments VM de configuration du fichier:Problème lors du lancement du chromedriver dans le test Spock
-Dwebdriver.chrome.driver =/Users/mht/ChromeDriver /2.3.1/chromedriver
Évidemment, c'est l'emplacement du Chromedriver sur mon système. Ensuite, j'ai essayé de définir un objectif de build Maven au niveau du projet pour lancer les tests. Je clique sur le nom du projet et sélectionne "Run Configurations> Maven Build" et crée une configuration "Verify" pour correspondre à l'objectif de vérification défini dans mon pom. Dans les "Buts, la boîte que j'entre" vérifie "et sur l'étiquette de JRE j'entre également l'emplacement ci-dessus pour le chromedriver dans la boîte d'arguments de VM Quand j'exécute cet objectif, ou sur la ligne de commande" mvn vérifie " l'erreur suivante:
geb.driver.DriverCreationException: Échec de la création pilote de rappel 'script15040527017471153797989 $ _run_closure1 @ 1046d517' à com.google.common.base.Preconditions.checkState (Preconditions.java:754) .. Cela me dit que le test ne peut pas localiser le chromedriver Si je copie le chromedriver dans le répertoire de base du projet, alors le test sera exécuté en utilisant l'objectif verify ou en tapant "mvn verify" sur la ligne de commande Pourquoi ne pas régler le locat chromedriver ion ne travaille pas au niveau de l'objectif maven?
Je ne pense pas que c'est vraiment important, mais la section de construction de mon pom est
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<webXml>src/main/webapp/WEB-INF/web.xml</webXml>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.18</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
<configuration>
<useFile>false</useFile>
<includes>
<include>**/*Spec.java</include>
</includes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<id>tomcat-run</id>
<goals>
<goal>run-war-only</goal>
</goals>
<phase>pre-integration-test</phase>
<configuration>
<port>9081</port>
<fork>true</fork>
</configuration>
</execution>
<execution>
<id>tomcat-shutdown</id>
<goals>
<goal>shutdown</goal>
</goals>
<phase>post-integration-test</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.gmavenplus</groupId>
<artifactId>gmavenplus-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>