maven-surefire-plugin - JUnit Jupiter 的扩展自动检测是否会阻止查找测试?

标签 maven-surefire-plugin junit5

我们最近更新到 maven-surefire-plugin v2.22.1 和 junit v5.4.0 时发现这个错误: [ERROR] 无法执行目标 org.apache.maven.plugins:maven-surefire-plugin:2.22.1:test (default-test) on project xxx: 没有执行测试! (设置 -DfailIfNoTests=false 以忽略此错误。)-> [帮助 1]

经过多次检查,我们发现我们必须:

  1. 从我们的配置中删除这一行: junit.jupiter.extensions.autodetection.enabled = true

  2. 并且还包括这个以继续使用并行执行: junit.jupiter.execution.parallel.mode.default = concurrent

对于第二点,在用户指南中进行了说明,但我们对第一点一无所知...有人可以解释可能是什么原因吗?这可能是一个错误吗?

谢谢!

最佳答案

使用 Maven Surefire 3.x

Maven Surefire 版本 3.x 提供了更好的 JUnit 平台支持。请将 Surefire 升级到 3.0.0-M3 或更高版本。

JUnit Jupiter 并行测试执行

要启用并行测试执行,您需要执行两个配置步骤:

  1. junit.jupiter.execution.parallel.enabled 设置为 true
  2. 要么将 junit.jupiter.execution.parallel.mode.default 设置为 concurrent 以激活所有测试容器(包括类、测试模板和动态容器)对所有应参与并行测试执行的测试类使用@Execution(CONCURRENT)注释。

有关详细信息,请参阅 https://junit.org/junit5/docs/current/user-guide/#writing-tests-parallel-execution

关于maven-surefire-plugin - JUnit Jupiter 的扩展自动检测是否会阻止查找测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55124879/

相关文章:

java - 参数化 Junit 类 - 如何将 ArrayList 作为参数发送给 method()

junit5 - JUnit 5 何时可以使用场景测试?

java - Maven 使用 Surefire exceptTests 选项排除测试

java - JUnit 测试 "Times Out"尽管执行速度很快?

unit-testing - 如何使用 maven-surefire-plugin 在同一项目中执行 JUnit 和 TestNG 测试?

maven - 如何通过 maven 命令记录测试方法名称?

Jenkins 发布 TestNG 结果不起作用

java - 使用 @ActivateProfiles 在 JUnit5 测试中加载不正确的 SpringBoot 属性文件

java - Junit 5与Spring Boot : When to use @ExtendWith Spring or Mockito?

java - 在 JUnit 5 中正确设置(系统)属性