web-dev-qa-db-fra.com

NoClassDefFoundError: org/testng/TestNG

Cette erreur

NoClassDefFoundError: org/testng/TestNG

s'affiche lorsque j'essaie d'exécuter mon test à partir d'un fichier Testng.xml à l'aide d'IntelliJ IDEA . Exécuter mon test un par un fonctionne parfaitement, ainsi que l'exécution d'un projet Gradle complet pointant vers testng.xml, comme grade core-test:test

(Sur mon projet, j'utilise Appium + IntelliJ + TestNG) 

Mais lorsque je lance testng.xml avec IntelliJ, je reçois immédiatement ce message après avoir appuyé sur Exécuter:

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
5
Anton

J'ai trouvé une solution publiée ici: https://intellij-support.jetbrains.com/hc/en-us/community/posts/206597869-Cannot-launch-NGTest-runner-in-IntelliJ-IDEA-2016-1

Je l'ai fait fonctionner en sélectionnant "Dans tout le projet" (j'avais "Dans le module simple " Sélectionné) sous l'onglet Configuration dans TestNG "Exécuter/Déboguer Configurations". 

Cependant, la configuration précédente fonctionnait dans IntelliJ IDEA 15, donc pour moi, il semble que cela soit dû à un changement radical avec le nouvel IDE.

Cela a fonctionné pour moi.

5
Justin Tilson

ajout d'une capture d'écran pour aider la réponse de Justin ci-dessus. La valeur par défaut est Dans un seul module qui doit être remplacé par Dans tout le projet.

 

2
AP22

Pour moi, c'est un peu différent, j'utilisais le fichier de configuration testng pour exécuter une suite de tests. Je l'exécutais à partir du module parent au lieu du module enfant. Ce qui suit est ce que j'ai fait pour surmonter l'erreur

 test ng failure

1
Zeus

Veuillez suivre les étapes suivantes:

  1. Ajoutez la bibliothèque TestNG à partir du chemin de génération Java du projet.

  2. Cliquez avec le bouton droit sur project puis -> Build path -> Configure build path -> Libraries tab -> Add library -> Choose TestNG et apply.

  3. Créez une classe testNG et exécutez le fichier testng.xml, cela fonctionnera.

  4. Cliquez avec le bouton droit sur le projet -> testNG-> create testNG class -> give the details et create one method dans cette classe, puis exécutez le fichier.

0
divya