2013-07-09 3 views
13

Почему Maven пропускает все мои тесты по умолчанию? У меня есть pom.xml с небольшим количеством профилей, и я не могу запускать свои тесты ни с одним из них. Один из моих профилей выглядитMaven автоматически пропускает тесты

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

Если я бегу mvn verify -Pjsf-test тогда проект компилируется, jsf-app артефакт правильно копируется в целевой каталог и тесты пропускаются. mvn verify -Dtest=TestCalculator имеет тот же результат. Я использую Arquillian и TestNG для выполнения фактических тестов, но я не уверен, имеет ли это значение для этого вопроса.

EDIT

Запуск в отладить даст (соответствующая часть)

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

Мой самый простой тест выглядит так

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

Вы уверены, что вы не работаете с '-DskipTests' каким-то образом? Что делает 'mvn clean verify' или' mvn clean install'? – vikingsteve

+0

Попробуйте запустить '-X', чтобы получить вывод отладки, а затем посмотрите конфигурацию плагина surefire. Я также подозреваю проблему наследования плагина. Плагин surefire настроен в родительском POM? – user944849

+0

и где ваши тесты определены? –

ответ

23

Выход отладки показывает это:

[DEBUG] (s) skip = true 

, который не только пропускает работает тестов, он также пропустит компиляции их. Проверьте родительский POM (напрямую ссылающийся на этот POM, а также любые корпоративные POM или супер POM, представленные Arquillian), чтобы узнать, где этот флаг установлен, если вам интересно.

Исправление добавить

<skip>false</skip> 

на верный плагин конфигурации в этом модуле, или добавить

-Dmaven.test.skip=false 

в командной строке.

Reference

+1

true - тесты скомпилированы, но не запущены. –

+1

true - тесты даже не скомпилированы. –