Подтвердить что ты не робот

Есть ли способ сказать surefire пропустить тесты в определенном пакете?

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

Я хотел бы пропустить мои тесты dao в surefire. Попытка избежать накладных расходов на определение апартаментов.

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

mvn -DskipPattern=**.dao.** test
4b9b3361

Ответ 1

Позвольте мне расширить ответ Шона. Это вы установили в 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

Что это.

Ответ 2

Конечно, никаких проблем:

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

Справка:

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

Ответ 3

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

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

примеры:

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

mvn install '-Dtest=!TestHCatLoaderEncryption'

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

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

можно комбинировать с положительными фильтрами; followin будет запускать тест 0:

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