Игнорирование тестов до тех пор, пока они не потребуются в Maven / Junit? - PullRequest
0 голосов
/ 29 февраля 2012

Есть ли способ настроить проект Maven для запуска по умолчанию, чтобы игнорировать набор тестов, если только не указана определенная системная переменная?

Например, если я запускаю следующее:

mvn clean install

Определенная коллекция тестов не выполняется как часть сборки.Если я выполню сборку следующим образом:

mvn clean install -DrunAllTests

Также будут выполнены тесты, которые по умолчанию игнорируются в стандартной сборке.

Я знаю, что могу сделать это с помощью TestNG, но япредпочел бы остаться с JUnit на данный момент.Я также пытался использовать функцию категорий Junit, но не смог заставить тесты игнорироваться по умолчанию.

Есть мысли или идеи?

Ответы [ 2 ]

4 голосов
/ 29 февраля 2012

Чтобы включить тесты на выполнение, вы можете добавить следующую конфигурацию для maven-surefire-plugin:

<configuration>
   <includes>
      <include>**/SomeTests*.java</include>
   </includes>
</configuration>

Таким образом, вы можете использовать это вместе с профилями Maven и извлекать / включать дополнительные тесты вПространственный профиль.Например:

<profiles>
  <profile>
    <id>allTests</id>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <includes>
            <include>**/SomeOtherTests*.java</include>
          </includes>
        </configuration>
     </plugins>
  </profile>
</profiles>

Тогда команда maven будет выглядеть следующим образом:

mvn clean install -PallTests

Если вы предпочитаете использовать свойства, вы можете добавить раздел активации в профиль allTests и активировать его на основеданное свойство.

2 голосов
/ 29 февраля 2012

Вы можете использовать функцию Категория JUnit вместе с excludeGroups плагина Maven's Surefire.

...