Erreur d'IntelliJ lors de l'exécution de l'essai de l'unité: impossible de trouver ou de charger la classe principale ${surefireArgLine}
j'obtiens l'erreur suivante lors de l'exécution de tests unitaires dans IntelliJ: Erreur: Impossible de trouver ou de charger la classe principale ${surefireArgLine}. Je suis à l'aide de maven et dans le pom.xml que j'ai:
<properties>
...
<surefire.argLine />
</properties>
<build>
<plugins>
<plugin>
<groupId>com.mysema.maven</groupId>
<artifactId>apt-maven-plugin</artifactId>
<version>1.1.1</version>
<executions>
<execution>
<goals>
<goal>process</goal>
</goals>
<configuration>
<outputDirectory>target/generated-sources/java</outputDirectory>
<processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
<configuration>
<!--Sets the VM argument line used when unit tests are run.-->
<argLine>${surefire.argLine}</argLine>
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.1.201405082137</version>
<executions>
<!--
Prepares the property pointing to the JaCoCo runtime agent which
is passed as VM argument when Maven the Surefire plugin is executed.
-->
<execution>
<id>pre-unit-test</id>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<!--Sets the path to the file which contains the execution data.-->
<destFile>${project.build.directory}/coverage-reports/jacoco-ut.exec</destFile>
<!--
Sets the name of the property containing the settings
for JaCoCo runtime agent.
-->
<propertyName>surefireArgLine</propertyName>
</configuration>
</execution>
...
quelqu'un A problème similaire? Comment définir la valeur pour surefireArgLine?
5 réponses
j'ai eu le même problème et je pense que j'ai trouvé la solution sur le vertx-problème de tracker.
en bref, vous devez configurer votre intégration IntelliJ Maven (surefire plugin) pour vous comporter différemment.
faites ceci via:
Preferences -> Build,Execution,Deployment -> Build Tools -> Maven -> Running Tests
Décocher la case argLine
j'ai pu corriger cette erreur dans Netbeans en changeant la version surefire-plugin en 2.10 et en supprimant
<argLine>-Xmx1024m -XX:MaxPermSize=256m ${argLine}</argLine>
à partir de la configuration maven-surefire-plugin. Au lieu de cela j'ai créé une propriété argLine qui est choisi automatiquement par infaillible.
<properties>
<argLine>-Xmx1024m -XX:MaxPermSize=256m</argLine>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.10</version>
</plugin>
maintenant, je peux exécuter et déboguer des fichiers simples et des méthodes de test. Et la couverture du Code fonctionne comme prévu.
j'ai découvert que je dois exécuter mon cas de test de maven avec mvn -Dtest=TestCircle test pas directement à partir de l'IDE.
était à la recherche de ceci et a trouvé ce projet "corriger" dans ce thread
en gros, définissez votre nom jacocoArgLine var comme propriété de projet vide. Ensuite, dans la configuration surefire, utilisez @{jacocoArgLine} au lieu du préfixe dollar.
mise à jour de pom.xml a résolu mon problème.
<argLine>${surefire.argLine}</argLine>
Complet plugin info dans le pom.xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<parallel>classes</parallel>
<threadCount>10</threadCount>
<workingDirectory>${project.build.directory}</workingDirectory>
<jvm>${env.JDK1_8_HOME}\bin\java</jvm>
<argLine>${surefire.argLine}</argLine>
</configuration>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit4</artifactId>
<version>2.18.1</version>
</dependency>
</dependencies>
</plugin> -->