簡體   English   中英

java.lang.ClassNotFoundException: org.junit.platform.engine.ConfigurationParameters Junit5 與 eclipse

[英]java.lang.ClassNotFoundException: org.junit.platform.engine.ConfigurationParameters Junit5 with eclipse

我收到以下異常:

java.lang.NoClassDefFoundError: org/junit/platform/engine/ConfigurationParameters
    at org.eclipse.jdt.internal.junit5.runner.JUnit5TestLoader.<init>(JUnit5TestLoader.java:34)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:64)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
    at java.base/java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:128)
    at java.base/jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:350)
    at java.base/java.lang.Class.newInstance(Class.java:645)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createRawTestLoader(RemoteTestRunner.java:371)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createLoader(RemoteTestRunner.java:366)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.defaultInit(RemoteTestRunner.java:310)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.init(RemoteTestRunner.java:225)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:209)
Caused by: java.lang.ClassNotFoundException: org.junit.platform.engine.ConfigurationParameters
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:606)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:168)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    ... 13 more

在 Eclipse 項目(無 Maven)中運行 JUnit 5。 有誰知道是什么導致了這個問題? Eclipse 版本:2020-12 JUnit 版本:5

我期待 JUnit 5 在 Eclipse 上運行而無需采取進一步行動。

我也發生了同樣的錯誤。

解決方案:我必須將 JUnit 庫添加到構建路徑。 右鍵單擊 class -> 構建路徑 -> 配置構建路徑 -> 添加庫 -> 添加 JUnit

此時應將新庫添加到模塊路徑而不是整個 class 路徑中。

JUnit 測試現在正在為我運行,盡管我遇到了與@AlBlue 相同的錯誤。

我遇到了這個問題,因為我將構建路徑配置為 JUnit 5 到模塊路徑。 相反,您需要在 Classpath 中配置它。

編輯如評論中所述:可以將庫添加到構建路徑和模塊路徑的兩個位置。 如果在模塊路徑上添加 Junit,則這些類不可見,因為它們未打包在模塊中

看起來您缺少 JUnit 的依賴項之一,這意味着 class 未加載。 檢查您是否擁有所有必要的依賴項,特別是如果您沒有使用 Maven 之類的構建工具。

在 Java 構建路徑 window 中將 Junite 庫添加到 Classpath 而不是 Modulepath,它為我解決了這個問題

當我嘗試在 STS 4 MacOS 上運行 junit 測試 class 時,我的問題得到了解決。 我做了:

  1. 添加 JUnit 5 Jupiter 文件的所有必需的 jar 文件 -

    • junit-jupiter-api-5.8.0.jar
    • 注釋-13.0.jar
    • apiguardian-api-1.1.2.jar
    • 核心-0.6.8.jar
    • hoplite-core-2.1.3.jar
    • hoplite-yaml-2.1.3.jar
    • junit-jupiter-engine-5.8.0.jar
    • junit-platform-commons-1.8.0.jar
    • junit-平台-引擎-1.8.0.jar
    • junit-platform-launcher-1.8.0.jar
    • junit5-0.6.8.jar
    • kotlin-reflect-1.6.20.jar
    • kotlin-stdlib-1.6.20.jar
    • kotlin-stdlib-common-1.6.20.jar
    • kotlin-stdlib-jdk7-1.6.10.jar
    • kotlin-stdlib-jdk8-1.6.10.jar
    • opentest4j-1.2.0.jar
    • slf4j-api-1.7.32.jar
  2. 或在 pom.xml 文件中添加依賴項

<dependency>
   <groupId>com.github.lemfi.kest</groupId>
   <artifactId>junit5</artifactId>
   <version>0.6.8</version>
</dependency>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM