我们最近更新到 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]
经过多次检查,我们发现我们必须:
从我们的配置中删除这一行:
junit.jupiter.extensions.autodetection.enabled = true
并且还包括这个以继续使用并行执行:
junit.jupiter.execution.parallel.mode.default = concurrent
对于第二点,在用户指南中进行了说明,但我们对第一点一无所知...有人可以解释可能是什么原因吗?这可能是一个错误吗?
谢谢!
最佳答案
使用 Maven Surefire 3.x
Maven Surefire 版本 3.x
提供了更好的 JUnit 平台支持。请将 Surefire 升级到 3.0.0-M3
或更高版本。
JUnit Jupiter 并行测试执行
要启用并行测试执行,您需要执行两个配置步骤:
- 将
junit.jupiter.execution.parallel.enabled
设置为true
。 - 要么将
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/