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



我们使用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");
}
}

此示例的控制台输出将显示每个测试的重复调试。arquillian.xml中的dockerContainers配置如下所示:

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依赖项升级到最新版本,但问题仍然存在。

关于为什么会发生这种情况,是否是预期行为(以及为什么(,或者我们在配置中可能做错了什么,我们将不胜感激。

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

最新更新