用于JUnit4的JUnit5老式引擎错误:不支持的版本:JUNIT:JUNIT:4.11。请升级到版本4.12或更高版本。如何降级?

2022-06-13 00:00:00 java junit junit5 junit-vintage
Internal Error occurred.
org.junit.platform.commons.JUnitException: TestEngine with ID 'junit-vintage' failed to discover tests
    at org.junit.platform.launcher.core.EngineDiscoveryOrchestrator.discoverEngineRoot(EngineDiscoveryOrchestrator.java:111)
    at org.junit.platform.launcher.core.EngineDiscoveryOrchestrator.discover(EngineDiscoveryOrchestrator.java:85)
    at org.junit.platform.launcher.core.DefaultLauncher.discover(DefaultLauncher.java:92)
    at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:75)
    at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:71)
    at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
    at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:220)
    at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:53)
Caused by: org.junit.platform.commons.JUnitException: Unsupported version of junit:junit: 4.11. Please upgrade to version 4.12 or later.
    at org.junit.vintage.engine.JUnit4VersionCheck.checkSupported(JUnit4VersionCheck.java:49)
    at org.junit.vintage.engine.JUnit4VersionCheck.checkSupported(JUnit4VersionCheck.java:35)
    at org.junit.vintage.engine.VintageTestEngine.discover(VintageTestEngine.java:62)
    at org.junit.platform.launcher.core.EngineDiscoveryOrchestrator.discoverEngineRoot(EngineDiscoveryOrchestrator.java:103)
    ... 7 more

当我使用带有Vintage Engine的JUnit5时,出现此错误。其目的是:

  • 尝试逐步迁移到JUnit5,而不破坏整个大项目的一个模块中现有的JUnit4测试
  • 不要触及我的模块中现有的JUnit4依赖项
那么,我如何知道应该将JUnit5降级到哪个版本才能与JUnit4.11兼容?我现在的版本是5.7.0。


解决方案

任何降级版本的JUnit5或JUnitvintage Engine都不会支持JUnit4.11。JUnit Vintage需要JUnit 4.12或更高版本。

(source,其中others)

相关文章