我知道这已经被质疑了几次,但我已经没有办法了。
sept. 07, 2023 3:57:06 PM org.junit.platform.launcher.core.DefaultLauncher handleThrowable
WARNING: TestEngine with ID 'junit-jupiter' failed to discover tests
java.lang.NoClassDefFoundError: org/junit/platform/engine/support/discovery/SelectorResolver
at org.junit.jupiter.engine.JupiterTestEngine.discover(JupiterTestEngine.java:69)
at org.junit.platform.launcher.core.DefaultLauncher.discoverEngineRoot(DefaultLauncher.java:168)
at org.junit.platform.launcher.core.DefaultLauncher.discoverRoot(DefaultLauncher.java:155)
at org.junit.platform.launcher.core.DefaultLauncher.discover(DefaultLauncher.java:120)
at org.apache.maven.surefire.junitplatform.TestPlanScannerFilter.accept(TestPlanScannerFilter.java:56)
at org.apache.maven.surefire.util.DefaultScanResult.applyFilter(DefaultScanResult.java:102)
at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.scanClasspath(JUnitPlatformProvider.java:143)
at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:124)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345)
at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418)
Caused by: java.lang.ClassNotFoundException: org.junit.platform.engine.support.discovery.SelectorResolver
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 12 more
这是我从jUnit 5得到的消息。他找不到任何测试(有800多个)。
我的pom似乎是正确的:
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.10.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.10.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>5.10.0</version>
<scope>test</scope>
</dependency>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
</plugin>
我的测试命名得很好:
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class AttestationIdentiteCallParamsTest {
@Test
void testAttestationIdentiteCallParams() {
}
使用java 11从intelliJ和CMD执行测试。
mvn clean install
200倍
从来都不管用。有主意吗?谢谢
3条答案
按热度按时间3gtaxfhh1#
要运行Junit Jupiter测试,最好是对所有需要的工件依赖项使用junit-bom。
也使用最新版本的maven-surefire-plugin
如果你在同一个项目中结合合并JUnit 4和JUnit Jupiter(又名JUnit 5)测试,你必须像这样使用junit-vintage-engine:
这意味着您可以通过JUnit 5 Vintage引擎运行JUnit 4测试。
e0uiprwp2#
你有一个
java.lang.ClassNotFoundException
为org.junit.platform.engine.support.discovery.SelectorResolver
。这个类应该来自工件修复可能就像将此依赖项添加到您的pom.xml一样简单?
也许您需要从命令行运行以下命令来查看发生了什么
mvn dependency:tree
mvn help:effective-pom
ojsjcaue3#
我们已经提到了两个依赖项来解决您的问题。
谢谢.