2012-05-23 3 views
1

У меня есть проект maven с модулем интеграционных тестов, который по умолчанию не включен в основную сборку, которая не указана в списке родительских pom. Интеграционные тесты обычно создаются после того, как все остальные модули готовы. Тесты интеграции также используют ресурсы (файлы конфигурации), расположенные в других модулях, и ссылаются на них по относительному пути (например, ../common/src/main/..../config.xml). Вопрос в том, можно ли сделать то же самое с дженкинсами, желательно, повторно используя рабочее пространство, созданное «основной» сборкой?Возможно ли иметь модуль интеграционных тестов, построенный после основного проекта

С уважением, Eugene.

ответ

2

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

Если у вас есть модуль в вашем текущем модуле, вам необходимо настроить его таким образом. Если у Вас есть свои интеграционные тесты в ИПВ/IT/Java

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>build-helper-maven-plugin</artifactId> 
    <version>1.5</version> 
    <executions> 
     <execution> 
     <id>add-test-source</id> 
     <phase>process-resources</phase> 
     <goals> 
      <goal>add-test-source</goal> 
     </goals> 
     <configuration> 
      <sources> 
      <source>src/it/java</source> 
      </sources> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 

Другим важным является использование Maven-безотказное-плагин так:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-failsafe-plugin</artifactId> 
    <version>2.12</version> 
    <executions> 
     <execution> 
     <id>integration-test</id> 
     <goals> 
      <goal>integration-test</goal> 
     </goals> 
     </execution> 
     <execution> 
     <id>verify</id> 
     <goals> 
      <goal>verify</goal> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> 

Но, как правило, лучше всего иметь отдельный модуль интеграции-тест, который содержит материал для интеграционных тестов, таких как следующая структура:

+-- root (pom.xml) 
     +-- mod1 (pom.xml) 
     +-- mod-it (pom.xml) 
     +.. .. 

конфигурация в моде-то более или менее такой же, как и в предыдущем примере, но вам может избежать builduel-plugin, потому что вы поставили бы свои интеграционные тесты в src/test/java. Важно, чтобы быть в курсе конвенции о maven-failsafe-plugin, предполагающей иметь это назвали как * IT.java и т.д.

Кроме того, я могу порекомендовать прочитать this и documentation here.

+0

Я должен быть слепым, но я не вижу, чтобы дженкинсы не упоминались ни в вашем ответе, ни в ссылках, которые вы предлагали. – user656449

+0

Дело в том, что это будет работать и в Jenkins (mvn verify). Просто используйте тип сборки Maven в jenkins, и jenkins построят проект в заданном порядке. Или вы хотели иметь отдельную сборку для теста интеграции в jenkins? – khmarbaise

+0

да, отдельная сборка или прокладка, я не уверен, как ее назвать – user656449

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