2013-07-09 9 views
13

Come mai Maven sta saltando tutti i miei test di default? Ho uno pom.xml con pochi profili e non sono in grado di eseguire i miei test su nessuno dei due. Uno dei miei profili assomigliaMaven sta automaticamente saltando le prove

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

Se corro mvn verify -Pjsf-test poi il progetto viene compilato, jsf-app artefatto è correttamente copiato nella directory di destinazione e le prove sono saltati. mvn verify -Dtest=TestCalculator ha lo stesso risultato. Sto usando Arquillian e TestNG per eseguire i test effettivi, ma non sono sicuro che sia importante per questa domanda.

EDIT

Rodaggio di debug darà (la parte rilevante)

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

La mia prova più semplice assomiglia a questo

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

Sei sicuro non si esegue con '-DskipTests' in qualche modo? Cosa significa 'mvn clean verify' o' mvn clean install'? – vikingsteve

+0

Prova a girare con '-X' per ottenere l'output di debug, quindi controlla la configurazione del plugin surefire. Sospetto anche un problema di ereditarietà dei plugin. Il plugin surefire è configurato in un POM padre? – user944849

+0

e dove sono definiti i test? –

risposta

23

L'output di debug mostra questo:

[DEBUG] (s) skip = true 

che non solo salta in esecuzione test, salterà anche compilando loro. Controlla il POM padre (a cui fa riferimento direttamente questo POM, anche qualsiasi POM aziendale o Super POM introdotto da Arquillian) per vedere dove viene impostato questo flag, se sei curioso.

La correzione è quello di aggiungere

<skip>false</skip> 

alla configurazione plug infallibile in questo modulo, o aggiungere

-Dmaven.test.skip=false 

alla riga di comando.

Reference

+1

true - i test sono compilati ma non eseguiti. –

+1

true - i test non sono nemmeno compilati. –