2017-03-20 15 views
0

私TestFactoryを実行しようとすると、私はこのエラーを取得:IntelliJのJUnit5 ClassNotFoundError

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テスト)からこれを実行するときにそれが働いています。

IDE:IntelliJの2016年3月3日 のJava:1.8 プロジェクトSDK:Javaの1.8

Libarier:

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 

私はそれを得ることはありません...

+0

あなたはJUnitの5言うご希望のジャーの場所を選択し

  • @Test注釈に応急処置を起動し、プロジェクトの依存関係に記載されているものを削除します。タイトルでは、POMはJUnit 4をもたらします。それはどちらですか? pom.xmlにopentest4j依存関係を追加してみてください。そのバージョンの欠落しているクラスがあることを確認します。 – duffymo

  • 答えて

    4

    あなたが追加する必要がありますopentest4j-1.0.0-M1.jarあなたのクラスパス

    あなたのポーに次の依存関係を追加してください:

    <!-- 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> 
    
    +0

    Mavenを使用してプロジェクトをデバッグするのではなく、実際にJUnit 5を使用しています。(理由は私がideで動作させようとする理由のみです) – Hendrik

    +0

    mavenを使用していない場合、jUnit jarファイルをライブラリファイルとしてプロジェクトに追加します –

    +0

    @JudeNiroshan彼はそれをするべきではありません。それがmavenプロジェクトの場合は、すべての依存関係をpomに追加する必要があります。それはmavenプロジェクトです: 'コマンドライン(mvnテスト)' – Jens

    0

    JUnitジャーは古くなっている可能性があります。

    1. 選択Add JUnit5 to classpath
    関連する問題