尝试使用IntelliJ 2017.2
将项目迁移到java8 + Junit5
我添加了junit-jupiter-api
版本5.0.0-M6
和junit-platform-launcher
版本1.0.0-M6
项目结构是默认的maven约定src/test/java
我发现了一些关于这个问题的文章,但没有一个能解决我的问题。
它在控制台中运行得很好,我认为这与IntelliJ默认的JUnit Runner有关,或者我缺少一些依赖项?
当我运行一个测试类时,一切都很好,但是当我像以前一样选择目录和Run all 'Tests' in Java
时,我遇到了一些错误。
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;
注意:我还没有迁移测试,都是Junit 4语法。
9条答案
按热度按时间gjmwrych1#
添加特定的依赖项可以解决问题。
注意:更新INTELLIJ至2017.2.0以上,因为Junit Launcher存在一个BUG
OXYGEN如果您使用Eclipse。
下面的依赖项启用Junit 5参数化测试,可以代替DataProvider使用。
6月5日API。
如果您希望在不更改语法和导入的情况下运行遗留JUnit 4测试,则需要此选项。
编辑:07/2018将复古跑步者的版本与木星版本相匹配
如果要使用新语法和导入运行JUnit 5测试,则需要此选项。
java.lang.NoSuchMethodError:org.junit.platform.engine.EngineDiscoveryRequest.getDiscoveryFiltersByType(Ljava/lang/Class;)Ljava/util/List;
启动器。
线程“main”中出现异常java.lang.NoSuchMethodError:org.junit.platform.commons.util.ReflectionUtils.getDefaultClassLoader()Ljava/lang/ClassLoader;
如何安装JUnit5
**从Gradle 4.6版本开始,Gradle不再需要插件支持Junit 5,只需做:**并且vintage runner的版本现在与JUnit 5版本相同。
dgsult0t2#
我不得不将JUnit的版本从5.4.0更改为5.3.2,它的工作原理非常好。
11dmarpk3#
我使用的配置如下。
只有当你也使用junit4测试时,才需要vintage引擎依赖。
只有在使用参数化测试时才需要jupiter参数。
sycxhyv74#
我在企业环境中使用IntelliJ和Jupiter时遇到了问题。我能够运行“mvn test”,但在IntelliJ中启动测试时提示“IntelliJ failed to resolve junit platform launcher 1.5 2”
配置HTTP代理为我解决了这个问题:
设置->外观和行为->系统设置-> HTTP代理->手动代理配置
cygmwpex5#
对于Android Studio,如果您遇到
无法解析请求“Uncategorized”。
转到您的文件
..\AndroidStudioProjects\Pets\app\build.gradle
在依赖项部分,
输入这两行代码
vyswwuz26#
我在junit 5.6.1中遇到了同样的问题,将其提升到5.7.0修复了它:
9nvpjoqh7#
如果你是在代理服务器后进行设置,并且maven clean install可以正常工作(但intellij不行),那么很可能是代理相关的。这就是为我解决的问题。选择代理自动检测。
dl5txlt98#
官方文档:
Maven Surefire和Maven Failsafe可以运行基于JUnit 4的测试以及Jupiter测试,只要您在JUnit 4和JUnit Vintage TestEngine实现上配置测试范围依赖项,如下所示。
798qvoo89#
使用此注解代替:org.junit.Test
也将你的方法和相应的类设置为public