Мы используем куб Arquillian с JUnit для тестирования контейнерных микросервисов SpringBoot.Это работает нормально, но по какой-то причине тестовая система выполняет каждый отдельный тест несколько раз - 2, 3, иногда 4 раза каждый.Я не вижу причин для этого или нахожу что-либо, чтобы объяснить это в документах, и это скорее неприятность, чем основная проблема (на данный момент).
Вот урезанный тестовый класс, который я использовал для демонстрации проблемы:
@RunWith(Arquillian.class)
@RunAsClient
public class MyTests {
@CubeIp(containerName = "test")
private String cubeIp;
@Test
@InSequence(2)
public void test1() {
System.out.println("executing test1");
}
@Test
@InSequence(2)
public void test2() {
System.out.println("executing test2");
}
}
Вывод консоли в этом примере будет показывать повторную отладку для каждого теста.Конфигурация dockerContainers
в arquillian.xml
выглядит следующим образом:
test:
image: my-image:1.0
await:
strategy: sleeping
sleepTime: 30 s
portBindings: [1080->1080/tcp]
restartPolicy:
name: failure
maximumRetryCount: 1
links:
- other-container:other-container
other-container:
image: other-container:1.0
portBindings: [8080->8080/tcp]
restartPolicy:
name: failure
maximumRetryCount: 1
Как видно, существует второй контейнер other-container
, который имитирует поведение восходящей службы.Оба запускаются и останавливаются правильно.Я попытался обновить все соответствующие зависимости Arquillian до последних версий, но проблема сохраняется.
Рекомендации о том, почему это происходит, является ли это ожидаемым поведением (и почему) или что мы можем делать неправильно в нашей конфигурациибыл бы признателен.