Куб Arquillian повторяет каждый юнит-тест несколько раз - PullRequest
0 голосов
/ 22 ноября 2018

Мы используем куб 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 до последних версий, но проблема сохраняется.

Рекомендации о том, почему это происходит, является ли это ожидаемым поведением (и почему) или что мы можем делать неправильно в нашей конфигурациибыл бы признателен.

1 Ответ

0 голосов
/ 12 февраля 2019

Удаление <artifactId>arquillian-protocol-servlet</artifactId> из нашего POM, которое было случайно включено, решило эту проблему.

...