繁体   English   中英

JUnit 5 tests are executed in parallel inside IntelliJ and locally with Maven, but not inside Maven Docker container on Google Cloud Build

[英]JUnit 5 tests are executed in parallel inside IntelliJ and locally with Maven, but not inside Maven Docker container on Google Cloud Build

我在我的 Maven 项目中使用 JUnit 5。

我的junit-platform.properties看起来像这样:

junit.jupiter.execution.parallel.enabled=true
junit.jupiter.execution.parallel.mode.default=concurrent

在 IntelliJ 内部或在本地使用 Maven 运行测试时,测试将并行执行。

但是,当在 Maven Docker 容器内的 Cloud Build 上运行它们时,它们似乎是按顺序运行的。

他们是这样称呼的:

steps:
  - name: 'maven:3-jdk-11-slim'
    args: [
      'mvn',
      # https://stackoverflow.com/a/53513809/3067148
      '-Dorg.slf4j.simpleLogger.showDateTime=true',
      '-Dorg.slf4j.simpleLogger.dateTimeFormat=HH:mm:ss,SSS',
      '-B',
      'test'
    ]

它们不并行执行的原因可能是什么?

可以使用ParallelExecutionConfigurationStrategy配置所需的并行度和最大池大小等属性。 JUnit 平台提供两种开箱即用的实现: dynamicfixed 或者,您可以实施自定义策略。

请记住, ParallelExecutionConfigurationStrategy class 仍处于“实验” state 中,并且还不稳定。 可能会发生意外行为。

由于您没有设置特定的配置策略,因此以下部分适用:

如果未设置配置策略,JUnit Jupiter 使用因子为 1 的dynamic配置策略。因此,所需的并行度将等于可用处理器/内核的数量。

https://junit.org/junit5/docs/current/user-guide/#writing-tests-parallel-execution-config查找更多详细信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM