2012-02-29 5 views
0

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

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

mvn clean install 

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

mvn clean install -DrunAllTests 

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

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

Любые мысли или идеи?

ответ

4

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

<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 и активировать его на основе данного свойства.

+0

Я создал общую сборку, чтобы исключить некоторые тесты и профиль, чтобы их включить. Если я запускаю «mvn clean install», тесты исключаются, что я и хочу. Если я запускаю «mvn clean install -PallTests», тесты по-прежнему исключаются, и это не то, что я хочу. Я что-то пропустил? – TERACytE

2

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

+0

Я посмотрел на это, но мне непонятно, как включить исключенные группы во время выполнения. Я пришел к выводу, что мне нужно будет создать два профиля, в том числе все тесты и те, которые включают все, кроме тех, которые я хочу исключить. Это означает, что во время выполнения я должен был бы указать, какой профиль запускать, что не соответствует моим целям. Я знаю, что могу установить один из них по умолчанию, но у меня есть другие профили для других целей, которые могут вызвать проблемы. Я неверен? – TERACytE

Смежные вопросы