У меня есть многомодульный проект Maven. В родительском POM я пытаюсь пометить определенные тесты как интеграционные тесты и использовать maven surefire для исключения IT и отказоустойчивые для включения IT. Вот что я попробовал:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
<configuration>
<includes>
<include>**/*Test.java</include>
</includes>
<excludedGroups>
com.pea.ceoa.choammon.IntegrationTest
</excludedGroups>
<excludes>
<exclude>ceoa-choammon-modality</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>3.0.0-M3</version>
<configuration>
<includes>
<include>**/*Test.java</include>
</includes>
<groups>
com.pea.ceoa.choammon.IntegrationTest
</groups>
<skipTests>${skipIntegrationTests}</skipTests>
<excludes>
<exclude>ceoa-choammon-modality</exclude>
</excludes>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
Некоторые из модулей этого проекта не имеют junit на пути сборки, потому что они не связаны ни с чем из этого. Однако failsafe + surefire выдают эту ошибку для проектов, не имеющих junit на пути сборки:
Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test (default-test) on project oeca-commons-model: groups/excludedGroups require TestNG or JUunit48+ on project test classpath -> [Help 1
Один из способов, которым я могу решить эту проблему, - поместить эту конфигурацию плагина не в родительский pom, а в каждый из соответствующих субмодули. Мне не нравится это делать, потому что это копирование и вставка. Я бы предпочел настроить его один раз в родительском POM. Как я могу использовать это в родительском POM, не имея ошибок для подмодулей, у которых нет jUnit?
Как вы можете видеть выше, перечисление проектов, исключаемых в теге exclude, похоже, не работает. Может быть, я просто не настроил это правильно.