当前位置: 首页 > 知识库问答 >
问题:

带有IntelliJ和Gradle的Junit5

白驰
2023-03-14

我已经添加了junit-jupiter-api版本5.0.0-M6

WARNING: TestEngine with ID 'junit-jupiter' failed to discover tests
java.lang.NoSuchMethodError: org.junit.platform.engine.TestDescriptor.pruneTree()V

Aug 02, 2017 2:44:56 PM org.junit.platform.launcher.core.DefaultLauncher handleThrowable
WARNING: TestEngine with ID 'junit-vintage' failed to discover tests
java.lang.NoSuchMethodError: org.junit.platform.engine.EngineDiscoveryRequest.getDiscoveryFiltersByType(Ljava/lang/Class;)Ljava/util/List;

Aug 02, 2017 2:44:56 PM org.junit.platform.launcher.core.DefaultLauncher handleThrowable
WARNING: TestEngine with ID 'junit-jupiter' failed to discover tests
java.lang.NoSuchMethodError: org.junit.platform.engine.TestDescriptor.pruneTree()V

Aug 02, 2017 2:44:56 PM org.junit.platform.launcher.core.DefaultLauncher handleThrowable
WARNING: TestEngine with ID 'junit-vintage' failed to discover tests
java.lang.NoSuchMethodError: org.junit.platform.engine.EngineDiscoveryRequest.getDiscoveryFiltersByType(Ljava/lang/Class;)Ljava/util/List;

注意:我还没有迁移任何测试,所有测试都是JUnit4语法。

共有1个答案

田成化
2023-03-14

添加特定的依赖项可以解决这个问题。

注意:在2017.2.0以上更新INTELLIJ,因为JUNIT LAUNCHER有一个BUG

如果你使用Eclipse。

"org.junit.jupiter:junit-jupiter-params:5.0.0"
//for JUnit5 parametrized tests.
"org.junit.jupiter:junit-jupiter-api:5.0.0"
//JUnit5 API
"org.junit.vintage:junit-vintage-engine:4:12.0"
//for legacy JUnit4 tests
"org.junit.jupiter:junit-jupiter-engine:5.0.0"
//for JUnit5 tests
"org.junit.platform:junit-platform-launcher:1.0.0
//to handle default launcher

有关如何安装JUnit5的其他信息

从Gradle的4.6版本开始,Gradle就不再需要插件了,Gradle支持Junit5,只需做:vintage runner的版本现在与Junit5版本相同。

dependencies {

    testImplementation "org.junit.jupiter:junit-jupiter-params:$junitVersion"
    testImplementation "org.junit.jupiter:junit-jupiter-api:$junitVersion"

    testRuntimeOnly "org.junit.vintage:junit-vintage-engine:$junitVersion"
    testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:$junitVersion"
}

test {  
    useJUnitPlatform {
        includeEngines 'junit-jupiter', 'junit-vintage'
    }
}
 类似资料:
  • 我试图让Mapstruct注释处理器在Gradle项目中的IntelliJ中工作。 我所做的: > 在我的中配置了Mapstruct注释处理器: 在“构建、执行、部署->构建工具->gradle->runner”下的首选项中选择了“委托IDE构建/运行操作来分级”

  • 至少,这是我目前关于构建失败原因的理论。有人使用了最新的spring、gradle和querydsl吗? 更新:我删除了ewerk插件并简化了我的build.gradle文件,所以现在一切都可以正常构建了。我正在更新以帮助其他可能需要此功能的人:

  • 如果这很重要,我将使用Gradle4.4和JDK7。

  • 我的项目是使用Gradle与Kotlin DSL进行构建。我现在要添加一个用于测试的自定义源集。有关守则如下: 有没有使用Kotlin DSL声明自定义源集并将其标记为测试模块的经验? 编辑:我现在使用Groovy创建了一个示例Gradle项目,使用下面的代码(我猜这只是我上面语句的Groovy版本),它工作起来没有问题: 因此,要么是我对Kotlin DSL的转换错误,要么是Intellij端的

  • 我有一个带有Spring 2.1.7的gradle 6.0项目。 我有一个错误: 无法加载类“org.gradle.api.internal.plugins.DefaultConvention”。此意外错误的可能原因包括: Gradle的依赖项缓存可能已损坏(有时会在网络连接超时后发生)。请重新下载依赖项并同步项目(需要网络) Gradle构建进程(守护进程)的状态可能已损坏。停止所有Gradle

  • 我试图与龙目岛建立一个项目,这是我所依赖的。 我能把这些涂鸦也包括进去,我在编辑中也加入了龙目舞。我甚至能够使用lombok编译代码,并对lombok生成的方法进行cal。 这是我的实体: 这是一个编译精细的函数: 但当我运行bootRun并尝试访问函数性时,我得到的是一个例外: 但是,如果我手动包含setter和getter,这就可以了。我不知道发生了什么,也不知道如何修复它。有什么想法吗?