Comment exécuter exactement un projet .Java TestNG à partir d'une ligne de commande?
J'ai lu la documentation TestNG et essayé ce qui suit en vain:
C:\projectfred> Java org.testng.TestNG testng.xml
... avec le fichier testng.xml suivant dans mon projet:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="SuiteAll" verbose="1">
<test name="TestAll">
<packages>
<package name="com.project.fred.tests"/>
</packages>
</test>
</suite>
L'erreur que j'obtiens est la suivante:
Exception in thread "main" Java.lang.NoClassDefFoundError: org/testng/TestNG
Caused by: Java.lang.ClassNotFoundException: org.testng.TestNG
at Java.net.URLClassLoader$1.run(Unknown Source)
at Java.security.AccessController.doPrivileged(Native Method)
at Java.net.URLClassLoader.findClass(Unknown Source)
at Java.lang.ClassLoader.loadClass(Unknown Source)
at Sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at Java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: org.testng.TestNG. Program will exit.
Évidemment, je ne référence pas correctement TestNG dans ma ligne de commande. Est-ce que quelqu'un sait comment faire fonctionner cela?
Vous devez avoir le testng.jar
sous classpath.
essayez C:\projectfred> Java -cp "path-tojar/testng.jar:path_to_yourtest_classes" org.testng.TestNG testng.xml
Mise à jour:
Sous Linux, j'ai exécuté cette commande et ce serait quelque chose de similaire sous Windows
test/bin# Java -cp ".:../lib/*" org.testng.TestNG testng.xml
Structure du répertoire:
/bin - All my test packages are under bin including testng.xml
/src - All source files are under src
/lib - All libraries required for the execution of tests are under this.
Une fois que j'ai compilé toutes les sources, elles vont dans le répertoire bin. Donc, dans le chemin de classe, je dois spécifier le contenu du répertoire bin et toutes les bibliothèques comme testng.xml, les enregistreurs, etc. ici. Copiez également testng.xml dans le dossier bin si vous ne souhaitez pas spécifier le chemin d'accès complet où le testng.xml est disponible.
/bin
-- testng.xml
-- testclasses
-- Properties files if any.
/lib
-- testng.jar
-- log4j.jar
Update
:
Allez dans le dossier MyProject
et tapez exécutez la commande Java comme ci-dessous: -
Java -cp ".: C:\Program Files\jbdevstudio4\studio\plugins\*" org.testng.TestNG testng.xml
Je crois que le fichier testng.xml est sous C:\Users\me\workspace\MyProject
sinon, veuillez donner le chemin complet pour testng.xml
fichier
Ok après 2 jours d'essayer de comprendre pourquoi je n'ai pas pu exécuter l'exemple à partir de
http://www.tutorialspoint.com/testng/testng_environment.htm le code suivant ne fonctionnait pas pour moi
C:\TestNG_WORKSPACE>Java -cp "C:\TestNG_WORKSPACE" org.testng.TestNG testng.xml
Le correctif est le suivant: je suis arrivé à la conclusion suivante: installez d'abord Eclipse et téléchargez le plug-in TestNG. Ensuite, suivez les instructions du didacticiel pour créer et compiler la classe de test à partir de cmd à l'aide de javac, puis ajoutez le testng.xml. Pour exécuter le testng.xml sur Windows 10 cmd, exécutez la ligne suivante:
Java -cp C:\Users\Lenovo\Desktop\Eclipse\plugins\org.testng.Eclipse_6.9.12.201607091356\lib\*;C:\Test org.testng.TestNG testng.xml
clarifier: C:\Users\Lenovo\Desktop\Eclipse\plugins\org.testng.Eclipse_6.9.12.201607091356\lib\*
Le chemin ci-dessus représente l'emplacement de jcommander.jar et testng.jar que vous avez téléchargés en installant le plugin TESTNG pour Eclipse. Le chemin peut varier, alors assurez-vous simplement d'ouvrir l'emplacement d'installation d'Eclipse, accédez aux plugins et recherchez jcommander.jar. Copiez ensuite cet emplacement et ajoutez ensuite * pour sélectionner tous les .jars nécessaires.
C:\Test
Le chemin ci-dessus représente l'emplacement du testing.xml dans votre projet. Après avoir obtenu tous les chemins nécessaires, ajoutez-les en utilisant ";".
J'espère avoir été utile à certains d'entre vous :)
Merci beaucoup, c'était vraiment très utile .. J'ai pu exécuter mes classes TestNG en utilisant la ligne de commande, mais je voudrais quand même récapituler les choses une dernière fois comme suit ..
1) Set the classpath for the testng.jar in the environment variables
(either manually or via command line).
2) Create a new folder "MyTest".
3) Compile all your classes(testNG+Java) and put them(.class files )
in a new folder "Mytest\bin".
4) Put your 'testng.xml' and '.properties' files to "Mytest\bin"
again.
5) Put all the .jar files (testng,Selenium... etc) in a new folder
"Mytest\lib".
6) Browse to the folder "bin" via command line and run the command
Java -cp "..\lib\*;" org.testng.TestNG testng.xml
cela devrait exécuter vos cas testNG.
Préparer MANIFEST.MF
fichier avec le contenu suivant
Manifest-Version: 1.0
Main-Class: org.testng.TestNG
Emballez toutes les classes de test et de dépendance dans le même bocal, par exemple tests.jar
jar cmf MANIFEST.MF tests.jar -C folder-with-classes/ .
Remarquez le dernier ".", Remplacez folder-with-classes/
avec le nom de dossier ou le chemin approprié.
Créer testng.xml
avec un contenu comme ci-dessous
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Tests" verbose="5">
<test name="Test1">
<classes>
<class name="com.example.yourcompany.qa.Test1"/>
</classes>
</test>
</suite>
Remplacer com.example.yourcompany.qa.Test1
avec le chemin d'accès à votre classe de test.
Exécutez vos tests
Java -jar tests.jar testng.xml
L'utilisation de ";" comme délimiteur sur le problème Windows a été résolue.
Java -cp "path of class files; testng jar file path" org.testng.TestNG testng.xml
ex:-
Java -cp ".\bin;..\common_lib\*;" org.testng.TestNG testng.xml
La commande ci-dessous fonctionne pour moi. Pourvu que tous les bocaux requis, y compris le bocal testng, soient conservés dans lib.
Java -cp "lib/*" org.testng.TestNG testng.xml
J'avais rencontré le même problème car j'ai téléchargé le plugin TestNG depuis Eclipse. Voici ce que j'ai fait pour faire le travail:
Après avoir ajouté TestNG à votre bibliothèque de projet, créez un dossier dans vos noms de projet en tant que lib (le nom peut être n'importe quoi):
Accédez à l'emplacement "C:\Program Files\Eclipse\eclipse-Java-mars-R-win32-x86_64\Eclipse\plugins" et copiez com.beust.jcommander_1.72.0.jar et org.testng_6.14.2.r20180216145.jar fichier dans le dossier créé (lib).
Remarque: Les fichiers sont testng.jar et jcommander.jar
C'est ça !
Faites-moi savoir si vous avez d'autres préoccupations.
Si vous utilisez Maven, vous pouvez l'exécuter à partir de la ligne cmd très facilement, cd dans le répertoire avec le testng.xml (ou quel que soit le vôtre, le xml qui a toutes les classes qui s'exécuteront) et exécutez cette cmd:
mvn clean test -DsuiteXmlFile=testng.xml
Cette page l'explique plus en détail: Comment exécuter testng.xml à partir de la ligne de commande Maven
Je ne savais pas que cela importait que vous utilisiez Maven ou non, donc je ne l'ai pas inclus dans mes termes de recherche, j'ai pensé le mentionner ici au cas où d'autres seraient dans la même situation que moi.
Après avoir parcouru les différents articles, cela a très bien fonctionné pour moi sur IntelliJ Idea
:
Java -cp "./lib/*;Path to your test.class" org.testng.TestNG testng.xml
Voici ma structure de répertoires:
/lib
-- all jar including testng.jar
/out
--/production/Example1/test.class
/src
-- test.Java
testing.xml
Exécutez donc par cette commande:
Java -cp "./lib/*;C:\Users\xyz\IdeaProjects\Example1\out\production\Example1" org.testng.TestNG testng.xml
Mon répertoire de projets Example1
est dans le chemin:
C:\Users\xyz\IdeaProjects\
Vous devrez utiliser un point-virgule comme délimiteur tout en spécifiant le fichier jar et le chemin du fichier de classe dans Windows. Cela a résolu le problème.
En supposant que le fichier de classe est sous C:.
Java -cp ".;C:\testng.jar" org.testng.TestNG testing.xml
Si aucune des réponses ci-dessus ne fonctionne, vous pouvez exécuter le test dans IDE, obtenir le chemin d'accès aux classes et l'utiliser dans votre commande. Ex: Si vous utilisez Intellij IDEA, vous pouvez le trouver en haut de la console (capture d'écran ci-dessous).
Cliquer sur la partie en surbrillance se développe et affiche le chemin de classe complet.
vous devez supprimer les références aux fichiers jars dans le dossier: JetBrains\IntelliJ IDEA Community Edition 2019.1.3
Java -cp "path_copied" org.testng.TestNG testng.xml