Arquillian立方体多次重复每个单元测试

问题描述 投票:0回答:1

我们使用Arquillian cube和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依赖项升级到最新版本,但问题仍然存在。

关于为什么会发生这种情况的建议,无论是预期的行为(以及为什么),或者我们在配置中可能出错的地方都将受到赞赏。

java spring-boot docker junit jboss-arquillian
1个回答
0
投票

从无意中包含的POM中去除<artifactId>arquillian-protocol-servlet</artifactId>解决了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.