【问题标题】:SpringRunner and BEFORE_EACH_TEST_METHOD starts app additional timeSpringRunner 和 BEFORE_EACH_TEST_METHOD 启动应用程序额外时间
【发布时间】:2017-10-11 20:40:30
【问题描述】:

当我创建 JUnit 测试时:

@RunWith(SpringRunner.class)
@SpringBootTest
@DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
public final class MyIT {

    @Test
    public void test() {
        ... do some tests...
    }

}

并运行测试它会导致 SpringBoot 应用程序启动 2 次,第二次将执行测试。 当我删除 @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD) 时,它会正确启动应用程序一次。

如何在测试中禁用 Spring Boot 应用程序的第一次毫无意义的启动?

【问题讨论】:

  • 你真的需要在课堂上使用它吗? :)
  • 我需要在隔离环境中运行每个测试(而不是重复使用其他测试中的一个),所以我认为是的。

标签: java spring spring-boot junit spring-test


【解决方案1】:

ClassMode.AFTER_EACH_TEST_METHOD 可能对你有用

【讨论】:

  • 我不知何故认为这只会颠倒这两家初创公司的顺序,但不,你是对的。它现在可以工作了,没有不必要的 Spring Boot 启动。谢谢
  • 是的,我在尝试提出一个解决方案来管理 Docker 容器在运行集成测试时启动/关闭时遇到了同样的问题(更多信息请参见 tech.asimio.net/2016/08/04/…),并且 AFTER_EACH_TEST_METHOD 确实有效。
猜你喜欢
  • 2018-10-27
  • 1970-01-01
  • 2021-06-19
  • 1970-01-01
  • 2011-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多