【问题标题】:Arquillian cube repeats each unit test multiple timesArquillian cube 多次重复每个单元测试
【发布时间】:2018-11-21 22:45:08
【问题描述】:

我们使用带有 JUnit 的 Arquillian cube 来测试容器化的 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 依赖项升级到最新版本,但问题仍然存在。

如果会发生这种情况,无论是预期的行为(以及原因)还是我们在配置中可能做错了什么,我们将不胜感激。

【问题讨论】:

标签: java spring-boot docker junit jboss-arquillian


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-05
    • 1970-01-01
    • 2011-02-22
    • 2013-09-10
    • 2014-03-12
    • 2012-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多