Есть ли способ сказать верный пропустить тесты в определенном пакете? - PullRequest
26 голосов
/ 08 декабря 2010

Что-то вроде следующего.

Я бы хотел, чтобы мои тесты dao проходили безошибочно.Пытаясь избежать накладных расходов на определение Сьютов.

С CI я хотел бы иметь один ночной, который выполняет все тесты, и еще один 5-минутный опрос SCM, который выполняет только «быстрые» тесты.

Ответы [ 3 ]

41 голосов
/ 17 декабря 2010

Позвольте мне расширить ответ Шона. Это то, что вы установили в pom.xml:

<properties>
  <exclude.tests>nothing-to-exclude</exclude.tests>
</properties>
<profiles>
  <profile>
    <id>fast</id>
    <properties>
      <exclude.tests>**/*Dao*.java</exclude.tests>
    </properties>
  </profile>
</profiles>
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <configuration>
    <excludes>
     <exclude>${exclude.tests}</exclude>
    </excludes>
  </configuration>
</plugin>

Затем в CI вы запускаете их так:

mvn -Pfast test

Вот и все.

18 голосов
/ 08 декабря 2010

Конечно, нет проблем:

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-surefire-plugin</artifactId>
   <version>2.6</version>
   <configuration>
      <excludes>
         <!-- classes that include the name Dao -->
         <exclude>**/*Dao*.java</exclude>
         <!-- classes in a package whose last segment is named dao -->
         <exclude>**/dao/*.java</exclude>
      </excludes>
   </configuration>
</plugin>

Справка:

(Исключения нельзя настроить с помощью командной строки, поэтому, если вы хотите включить это поведение условно, вам придется определить профиль и активировать его в командной строке)

2 голосов
/ 11 октября 2017

Можно исключить тесты с помощью командной строки; используя ! для исключения.

Примечание: я не уверен, но, возможно, для работы нужна версия 2.19.1 или более поздняя.

Примеры:

Это не будет работать TestHCatLoaderEncryption

mvn install '-Dtest=!TestHCatLoaderEncryption'

Исключить пакет:

mvn install '-Dtest=!org.apache.hadoop.**'

Это можно комбинировать и с позитивными фильтрами. Следующие запустят 0 тестов:

mvn install '-Dtest=Test*CatLoaderEncryption,!TestHCatLoaderEncryption'

См. Документы Maven Surefire .

...