web-dev-qa-db-ja.com

NoClassDefFoundError:org / testng / TestNG

このエラー

NoClassDefFoundError:org/testng/TestNG

intelliJ IDEAを使用してTestng.xmlファイルからテストを実行しようとすると表示されます。テストを1つずつ実行すると、testng.xmlのようなgrade core-test:testを指すgradleプロジェクト全体を実行するのと同様に完全に機能します

(私のプロジェクトでは、Appium + IntelliJ + TestNGを使用しています)

しかし、IntelliJを使用してtestng.xmlを実行している場合、[実行]を押すとすぐにこのメッセージが表示されます。

Exception in thread "main" Java.lang.NoClassDefFoundError: org/testng/TestNG
at Java.lang.ClassLoader.defineClass1(Native Method)
at Java.lang.ClassLoader.defineClass(ClassLoader.Java:763)
at Java.security.SecureClassLoader.defineClass(SecureClassLoader.Java:142)
at Java.net.URLClassLoader.defineClass(URLClassLoader.Java:467)
at Java.net.URLClassLoader.access$100(URLClassLoader.Java:73)
at Java.net.URLClassLoader$1.run(URLClassLoader.Java:368)
at Java.net.URLClassLoader$1.run(URLClassLoader.Java:362)
at Java.security.AccessController.doPrivileged(Native Method)
at Java.net.URLClassLoader.findClass(URLClassLoader.Java:361)
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)
at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.Java:120)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:62)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
at Java.lang.reflect.Method.invoke(Method.Java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.Java:147)

Caused by: Java.lang.ClassNotFoundException: org.testng.TestNG
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)
... 18 more
9
Anton

私はここに投稿されたソリューションを見つけました: https://intellij-support.jetbrains.com/hc/en-us/community/posts/206597869-Cannot-launch-NGTest-runner-in-IntelliJ-IDEA-2016 -1

TestNGの[構成の実行/デバッグ]の[構成]タブで[プロジェクト全体]([単一モジュール]を選択)を選択することで機能しました。

ただし、以前の構成はIntelliJ IDEA 15で機能していました。そのため、私にとっては、新しいIDEでの重大な変更によるものと思われます。

それは私のために働いた。

6
Justin Tilson

上記のジャスティンの答えを助けるためにスクリーンショットを追加します。デフォルトは単一モジュールで、これはプロジェクト全体

6
AP22

私にとっては少し異なります。testng構成ファイルを使用してtestngスイートを実行していました。子モジュールではなく親モジュールから実行していました。以下は私がエラーを克服するためにしたことです

test ng failure

2
Zeus

次の手順に従ってください。

  1. プロジェクトのビルドパスJava)からTestNGライブラリを追加します。

  2. projectを右クリックし、-> Build path -> Configure build path -> Libraries tab -> Add library -> Choose TestNGおよびapplyを右クリックします。

  3. TestNGクラスを作成し、testng.xmlファイルを実行すると動作します。

  4. そのクラスのプロジェクト-> testNG-> create testNG class -> give the detailsおよびcreate one methodを右クリックして、ファイルを実行します。

0
divya