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
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.
Veuillez suivre les étapes suivantes:
Ajoutez la bibliothèque TestNG
à partir du chemin de génération Java du projet.
Cliquez avec le bouton droit sur project
puis -> Build path -> Configure build path -> Libraries tab -> Add library -> Choose TestNG
et apply
.
Créez une classe testNG et exécutez le fichier testng.xml
, cela fonctionnera.
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.