У меня есть многомодульный проект Maven, и я пытаюсь настроить инструменты тестирования интеграции с помощью отказоустойчивого плагина.
Я добавил следующее в родительский проект pom.xml:
<profiles>
<profile>
<id>failsafe</id>
<build>
<plugins>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.22.0</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
Я также добавил тот же фрагмент в файл pom.xml дочернего модуля, куда были добавлены начальные тесты вместе с этим фрагментом:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
</plugin>
</plugins>
</build>
Вот структура каталогов модуля, в который был добавлен начальный интеграционный тест:
parent
-aws-service-utils
--src
---main
----java
-----com
------lorem
-------ipsum
--------S3
---------S3.java (dummy class)
---test (in same directory as main)
----java
-----com
------lorem
-------ipsum
--------dolor
---------tests
----------S3IT.java (test class for dummy class)
Вот как выглядит S3.java
, исключая импортированные пакеты:
public class S3 {
public int confirmAdd() {
int sum = 2 + 2;
return sum;
}
}
Вот как выглядит S3IT.java
, опять же за исключением импортированных пакетов:
public class S3IT {
@Test
public void confirmAdd() {
int sum = 2+2;
assertTrue(sum == 4);
}
}
Я запускаю mvn verify -Pfailsafe
, а затем mvn failsafe:integration-test
и не получаю тестовый вывод для всех других классов, как и ожидалось. Затем для модуля aws-service-utils
появляется следующее:
Похоже, он распознает класс интеграционного теста S3IT.java, но не тест внутри. Я рассмотрел предложенные решения в аналогичном посте переполнения стека , и ни одно из них не сработало. Мой основной ресурс для настройки интеграционных тестов с Maven можно найти здесь .