首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IntelliJ JUnit5 ClassNotFoundError

IntelliJ JUnit5 ClassNotFoundError
EN

Stack Overflow用户
提问于 2017-03-20 22:42:33
回答 2查看 4.1K关注 0票数 0

当我尝试运行我的TestFactory时,我得到了这个错误:

代码语言:javascript
复制
Mär 20, 2017 3:39:05 PM org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry loadTestEngines
INFORMATION: Discovered TestEngines with IDs: [junit-jupiter, junit-vintage]
Exception in thread "main" java.lang.NoClassDefFoundError: org/opentest4j/TestAbortedException
    at org.junit.jupiter.engine.descriptor.TestFactoryTestDescriptor.<clinit>(TestFactoryTestDescriptor.java:47)
    at org.junit.jupiter.engine.discovery.TestFactoryMethodResolver.resolveMethod(TestFactoryMethodResolver.java:56)
    at org.junit.jupiter.engine.discovery.TestMethodResolver.resolveElement(TestMethodResolver.java:63)
    at org.junit.jupiter.engine.discovery.JavaElementsResolver.tryToResolveWithResolver(JavaElementsResolver.java:164)
    at org.junit.jupiter.engine.discovery.JavaElementsResolver.lambda$resolve$8(JavaElementsResolver.java:155)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1548)
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
    at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
    at org.junit.jupiter.engine.discovery.JavaElementsResolver.resolve(JavaElementsResolver.java:158)
    at org.junit.jupiter.engine.discovery.JavaElementsResolver.lambda$resolveForAllParents$4(JavaElementsResolver.java:128)
    at java.lang.Iterable.forEach(Iterable.java:75)
    at org.junit.jupiter.engine.discovery.JavaElementsResolver.resolveForAllParents(JavaElementsResolver.java:127)
    at org.junit.jupiter.engine.discovery.JavaElementsResolver.resolveMethod(JavaElementsResolver.java:65)
    at org.junit.jupiter.engine.discovery.DiscoverySelectorResolver.lambda$resolveSelectors$3(DiscoverySelectorResolver.java:63)
    at java.util.ArrayList.forEach(ArrayList.java:1249)
    at org.junit.jupiter.engine.discovery.DiscoverySelectorResolver.resolveSelectors(DiscoverySelectorResolver.java:62)
    at org.junit.jupiter.engine.JupiterTestEngine.resolveDiscoveryRequest(JupiterTestEngine.java:50)
    at org.junit.jupiter.engine.JupiterTestEngine.discover(JupiterTestEngine.java:43)
    at org.junit.platform.launcher.core.DefaultLauncher.discoverRoot(DefaultLauncher.java:109)
    at org.junit.platform.launcher.core.DefaultLauncher.discover(DefaultLauncher.java:79)
    at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:47)
    at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:51)
    at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:237)
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: java.lang.ClassNotFoundException: org.opentest4j.TestAbortedException
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 28 more

但是,当从命令行(mvn test)运行它时,它是工作的。

IDE: IntelliJ 2016.3.3 Java: 1.8项目开发工具包: Java 1.8

Libarier:

代码语言:javascript
复制
ant-1.8.2.jar
hamcrest-core-1.3.jar
junit-4.12.jar
junit-jupiter-api-5.0.0-M3.jar
junit-jupiter-engine-5.0.0-M3.jar
transform-executor-java-4.2.2-SNAPSHOT.jar
transform-util-java-4.6.1-SNAPSHOT.jar
xmlbeans-2.6.0.jar
xmlunit-1.5.jar

我不明白..。

EN

回答 2

Stack Overflow用户

发布于 2017-03-20 22:44:28

您必须将opentest4j-1.0.0-M1.jar添加到类路径中

将以下依赖添加到您的pom:

代码语言:javascript
复制
<!-- https://mvnrepository.com/artifact/org.opentest4j/opentest4j -->
<dependency>
    <groupId>org.opentest4j</groupId>
    <artifactId>opentest4j</artifactId>
    <version>1.0.0-M1</version>
    <scope>test</scope>
</dependency>
票数 5
EN

Stack Overflow用户

发布于 2017-08-27 08:15:22

JUnit罐子可能已经过时了。

  1. 删除项目依赖项中列出的项
  2. 调用@Test上的快速修复程序以找到所需的Jar location
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42906547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档