2014-06-09 5 views
25

Ich erhalte den folgenden Fehler beim Ausführen von Komponententests in IntelliJ: Fehler: Die Hauptklasse $ {surefireArgLine} konnte nicht gefunden oder geladen werden. Ich bin mit Maven und in pom.xml ich habe:

<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> 
    ... 

Hat jemand ähnliches Problem haben? Wie setze ich den Wert für todsichereArgLine?

Antwort

0

Ich fand heraus, dass ich meinen Testfall von maven mit mvn -Dtest = TestCircle Test nicht direkt von IDE ausführen muss.

+1

Haben Sie jemals eine andere Lösung dafür gefunden? Ich muss es von meiner IDE aus ausführen, um den Debug-Modus verwenden zu können. – LisaMM

+0

Leider habe ich keine andere Lösung dafür gefunden. – BlueLettuce16

+2

@LisaMM Sie können Tests debuggen, ohne die Tests in einer IDE auszuführen. Starten Sie einfach die Tests mit * mvnDebug * in der Kommandozeile. Verwenden Sie dann Ihre bevorzugte IDE, um eine Verbindung zum Befehlszeilenprozess herzustellen. Google für "Remote-Debug" in Ihrer Lieblings-IDE. – jah

4

konnte ich diesen Fehler in Netbeans beheben, indem die todsicheren-Plugin Version 2.10 ändern und

<argLine>-Xmx1024m -XX:MaxPermSize=256m ${argLine}</argLine> 

aus der Maven-todsichere-Plugin-Konfiguration zu entfernen. Stattdessen habe ich eine Eigenschaft argLine erstellt, die automatisch von todsichere ausgewählt wird.

<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> 

Jetzt kann ich einzelne Dateien und Testmethoden ausführen und debuggen. Und Code Coverage funktioniert wie erwartet.

+0

Es löste mein Problem in Netbeans 8.2. Danke !!! –

74

Ich hatte das gleiche Problem und ich denke, ich fand die Lösung auf der vertx-issue tracker.

Kurz gesagt müssen Sie Ihre IntelliJ Maven (surefire plugin) Integration konfigurieren, um sich anders zu verhalten.

Tun Sie dies über: Preferences -> Build,Execution,Deployment -> Build Tools -> Maven -> Running Tests

Uncheck argLine

Dies funktioniert für mich in IntelliJ 14.1.6 mit mvn 3.3.9

+5

Danke das gleiche Problem hier Anfang 2016;) –

+7

In Intellij 2016: 'Einstellungen' ->' Build, Ausführung, Deployment' -> 'Build Tools' ->' Maven' -> 'Laufende Tests' – DieterDP

+2

Immer noch Dieses Problem im Jahr 2017, Lösung funktioniert. – Radu

0

wurde für diese suchen und dieses Projekt gefunden "reparieren" es in diesem thread

Grundsätzlich definieren Sie Ihre jacocoArgLine Var Name als leere Projekt-Eigenschaft. Verwenden Sie dann in der todsicheren Konfiguration @ {jacocoArgLine} anstelle des Dollar-Präfix.