我们将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依赖项升级到最新版本,但是问题仍然存在。
对于发生这种情况的原因,是否为预期的行为(以及原因)或我们在配置中可能做错的事情提供建议。
答案 0 :(得分:0)
从我们的POM中删除<artifactId>arquillian-protocol-servlet</artifactId>
可以解决此问题。