2013-07-09 12 views
13

Wie kommt es, dass Maven alle meine Tests standardmäßig überspringt? Ich habe eine pom.xml mit wenigen Profilen und ich kann meine Tests nicht durch beide ausführen. Einer meiner Profile sieht aus wieMaven überspringt automatisch Tests

<profile> 
     <id>jsf-test</id> 
     <dependencies> 
      <dependency> 
       <groupId>org.jboss.as</groupId> 
       <artifactId>jboss-as-arquillian-container-remote</artifactId> 
       <version>${jboss.version}</version> 
       <scope>test</scope> 
      </dependency> 
      <dependency> 
       <groupId>com.jsf.tests</groupId> 
       <artifactId>jsf-app</artifactId> 
       <version>${jsf-app.version}</version> 
       <type>war</type> 
      </dependency> 
     </dependencies> 
     <build> 
      <plugins>     
       <plugin> 
        <artifactId>maven-dependency-plugin</artifactId> 
        <version>2.6</version> 
        <executions> 
         <execution> 
          <id>copy-jsf-app</id> 
          <phase>validate</phase> 
          <goals> 
           <goal>copy</goal> 
          </goals> 
          <configuration> 
           <artifactItems> 
            <artifactItem> 
             <groupId>com.jsf.tests</groupId> 
             <artifactId>jsf-app</artifactId> 
             <version>${jsf-app.version}</version> 
             <type>war</type> 
             <destFileName>jsfapp.war</destFileName> 
             <outputDirectory>target</outputDirectory> 
            </artifactItem> 
           </artifactItems> 
          </configuration> 
         </execution> 
        </executions> 
       </plugin> 

       <plugin> 
        <artifactId>maven-surefire-plugin</artifactId> 
        <version>${maven-surefire.version}</version> 
        <configuration> 
         <skipTests>false</skipTests> <!-- desperate trial --> 
         <properties> 
          <property> 
           <name>listener</name> 
           <value>${testng.listeners}</value> 
          </property> 
         </properties> 
        </configuration> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 

Wenn ich mvn verify -Pjsf-test führen Sie das Projekt kompiliert wird, jsf-app Artefakt richtig in Zielverzeichnis kopiert und Tests übersprungen werden. mvn verify -Dtest=TestCalculator hat das gleiche Ergebnis. Ich verwende Arquillian und TestNG, um die tatsächlichen Tests durchzuführen, aber ich bin nicht sicher, ob es für diese Frage wichtig ist.

EDIT

im Debug-Rennen geben (der relevante Teil)

[DEBUG] (s) reportFormat = brief 
[DEBUG] (s) reportsDirectory = /home/pmensik/Work/workspace/epp-test/cdi-arquillian- test/target/surefire-reports 
[DEBUG] (f) reuseForks = true 
[DEBUG] (s) runOrder = filesystem 
[DEBUG] (s) skip = true 
[DEBUG] (s) skipTests = false 
[DEBUG] (s) systemPropertyVariables = {jsfPortlet=true} 
[DEBUG] (s) testClassesDirectory = /home/pmensik/Work/workspace/epp-test/cdi-arquillian-test/target/test-classes 
[DEBUG] (s) testFailureIgnore = false 
[DEBUG] (s) testNGArtifactName = org.testng:testng 
[DEBUG] (s) testSourceDirectory = /home/pmensik/Work/workspace/epp-test /cdi-arquillian-test/src/test/java 
[DEBUG] (s) trimStackTrace = true 
[DEBUG] (s) useFile = true 
[DEBUG] (s) useManifestOnlyJar = true 
[DEBUG] (s) useSystemClassLoader = true 
[DEBUG] (s) useUnlimitedThreads = false 
[DEBUG] (s) workingDirectory = /home/pmensik/Work/workspace/epp-test/cdi-arquillian-test 
[DEBUG] (s) project = MavenProject: org.jboss.gatein.test:cdi-portlet-test:6.1-ER01 @ /home/pmensik/Work/workspace/epp-test/cdi-arquillian-test/pom.xml 
[DEBUG] (s) session = [email protected] 
[DEBUG] -- end configuration -- 
[INFO] Tests are skipped. 

Meine einfachste Test sieht wie folgt aus

public class Test { 

    @Drone 
    protected WebDriver driver; 

    @Deployment(testable = false) 
    public static WebArchive createTestArchive() { 
     return ShrinkWrap.createFromZipFile(WebArchive.class, new File("target/CDIPortlet.war")); 
    } 

    @Test 
    public void testCase{ 
     //... 
    } 

} 
+0

Sind Sie sicher, dass Sie nicht in irgendeiner Weise mit '-DskipTests' laufen? Was macht 'mvn clean verify' oder' mvn clean install'? – vikingsteve

+0

Versuchen Sie, mit '-X' zu laufen, um die Debug-Ausgabe zu erhalten, dann schauen Sie sich die Konfiguration des todsicheren Plugins an. Ich vermute auch ein Plugin-Vererbungsproblem. Ist das todsichere Plugin in einem übergeordneten POM konfiguriert? – user944849

+0

und wo sind Ihre Tests definiert? –

Antwort

23

Die Debug-Ausgabe zeigt dies:

[DEBUG] (s) skip = true 

die nicht nur überspringt läuft die Tests, es wird auch kompilieren sie. Überprüfen Sie das übergeordnete POM (direkt von diesem POM referenziert, auch alle von Arquillian eingeführten Firmen-POMs oder Super-POMs), um zu sehen, wo dieses Flag gesetzt ist, wenn Sie neugierig sind.

Das Update ist

<skip>false</skip> 

zur todsicheren Plugin config in diesem Modul hinzufügen oder

-Dmaven.test.skip=false 

auf der Kommandozeile hinzuzufügen.

Reference

+1

true - Tests werden kompiliert, aber nicht ausgeführt. –

+1

true - Tests sind nicht einmal kompiliert. –