【问题标题】:Forked execution of SpringBootTest's with maven failsafe plugin - does it work out of the box?使用 maven 故障安全插件分叉执行 SpringBootTest - 它是否开箱即用?
【发布时间】:2019-06-06 10:31:31
【问题描述】:

假设您有一个 Spring-Boot 应用程序,并且在此应用程序中还有一堆集成测试,它们使用 @SpringBootTest 注释并使用 SpringRunner 类运行。 它们由maven failsafe plugin 调用,默认情况下不会以任何方式并行化测试。测试都运行良好,没有任何问题。

如果您使用 forkCount 的故障安全功能会发生什么变化 - 您可以期望测试执行开箱即用吗?你需要调整一些代码吗?您需要注意哪些可能不允许这些集成测试通过此插件在分叉的“并行”环境中运行? 据我了解,故障安全插件将创建 forkCount-many JVM,并在每个 JVM 中执行一些集成测试。这听起来好像没什么可做的,你不需要做任何线程安全的东西,你不需要把 Singleton-beans 变成 ThreadScoped bean 或任何东西——因为拥有多个 JVM 的过程应该已经创建了多个这些 bean。 抱歉,如果这个问题看起来很奇怪,我尝试研究这个问题,但找不到答案。

【问题讨论】:

    标签: spring spring-boot integration-testing maven-failsafe-plugin


    【解决方案1】:

    来自 Maven 文档:

    参数forkCount定义了JVM进程的最大数量

    这意味着测试将在它自己的进程中运行,因此您将拥有单独的 Spring Boot 实例。所以你真的不必关心线程安全。

    但是你必须关心内存消耗。

    【讨论】:

    猜你喜欢
    • 2016-02-15
    • 1970-01-01
    • 2019-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-12
    • 2012-09-15
    • 1970-01-01
    相关资源
    最近更新 更多