我正在做一个对我来说是新的项目,但已经有一段时间了。
我尝试使用mvn clean test从终端运行单元测试,单元测试按预期运行。
不幸的是,在这些单元测试中,我确实需要IntelliJ的一些调试帮助。每当我试图从IntelliJ运行单元测试时,我都会得到以下输出:
发生内部错误。 org.junit.platform.commons.JUnitException: ID为“junit-vintage”的TestEngine未能发现测试 由: org.junit.platform.commons.JUnitException:不支持的junit:junit: 3.8.1引起。请升级到4.12或更高版本。
根据pom.xml的说法,我使用的是JUnit 5.7.0,Mockito 3.7.7,而且(由于我在谷歌上搜索的一些结果表明它可能是Spring问题)没有Spring的迹象。我也尝试过包括junit-vintage,因为在输出中提到了它,但是这似乎也没有什么区别。
发布于 2021-02-05 16:55:33
这是旧的StackOverflow诅咒--寻找一个解决方案几个小时,一事无成;在StackOverflow上发表文章,甚至乐于助人的人都不知道问题出在哪里,但现在我可以从谷歌那里迅速找到答案。
尽管我以前在我的项目中添加了junit-vintage,但显然我并没有添加正确的工件、版本或其他东西。因为这就是解决办法。
将这里有一个链接添加到导致我找到答案的讨论中--添加这个依赖项:
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<version>5.2.0</version>
<scope>test</scope>
</dependency>发布于 2021-02-05 16:52:12
你能试着把
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.1</version>
</dependency>敬你的pom.xml。也许您只有junit作为传递依赖项,因此选择了3.8.1。
发布于 2021-05-11 14:28:35
可以尝试以下几个步骤来解决这个问题:
mvn dependency:tree并检查junit:junit (如果有的话)的传递依赖项。<dependency>
<groupId>junit-addons</groupId>
<artifactId>junit-addons</artifactId>
<version>1.4</version>
<exclusions>
<!-- Note: avoid junit 3 as a dependency -->
<exclusion>
<artifactId>junit</artifactId>
<groupId>junit</groupId>
</exclusion>
</exclusions>
<scope>test</scope>
</dependency>https://stackoverflow.com/questions/66055656
复制相似问题