Come eseguire TestNG dalla riga di comando

Come faccio a eseguire esattamente un progetto .java TestNG da una riga di comando?

Ho letto la documentazione di TestNG e ho provato quanto segue senza alcun risultato:

C:\projectfred> java org.testng.TestNG testng.xml 

… con il seguente file testng.xml nel mio progetto:

         

L’errore che ottengo è questo:

 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. 

Ovviamente, non sto riferendo correttamente TestNG nella mia riga di comando. Qualcuno sa come farlo funzionare?

È necessario avere il testng.jar sotto classpath.

prova C:\projectfred> java -cp "path-tojar/testng.jar:path_to_yourtest_classs" org.testng.TestNG testng.xml

Aggiornare:

Sotto Linux ho eseguito questo comando e sarebbe qualcosa di simile su Windows

 test/bin# java -cp ".:../lib/*" org.testng.TestNG testng.xml 

Struttura della directory:

 /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. 

Una volta che ho compilato tutte le fonti vanno sotto la directory bin. Quindi, nel classpath ho bisogno di specificare il contenuto della directory bin e tutte le librerie come testng.xml, logger ecc qui. Copiare anche testng.xml nella cartella bin se non si desidera specificare il percorso completo in cui il testng.xml è disponibile.

  /bin -- testng.xml -- testclasss -- Properties files if any. /lib -- testng.jar -- log4j.jar 

Update :

Vai alla cartella MyProject e digita esegui il comando java come mostrato di seguito: –

 java -cp ".: C:\Program Files\jbdevstudio4\studio\plugins\*" org.testng.TestNG testng.xml 

Credo che il file testng.xml sia in C:\Users\me\workspace\MyProject se non si specifica il percorso completo per il file testng.xml

Ok dopo 2 giorni di tentativi di capire perché non ho potuto eseguire l’esempio da

http://www.tutorialspoint.com/testng/testng_environment.htm il seguente codice non ha funzionato per me

 C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE" org.testng.TestNG testng.xml 

La soluzione è la seguente: Sono giunto alla seguente conclusione: Prima di tutto installa eclipse e scarica il plug-in TestNG. Successivamente seguire le istruzioni del tutorial per creare e compilare la class di test da cmd usando javac e aggiungere il testng.xml. Per eseguire testng.xml su windows 10 cmd, eseguire la seguente riga:

 java -cp C:\Users\Lenovo\Desktop\eclipse\plugins\org.testng.eclipse_6.9.12.201607091356\lib\*;C:\Test org.testng.TestNG testng.xml 

per chiarire: C:\Users\Lenovo\Desktop\eclipse\plugins\org.testng.eclipse_6.9.12.201607091356\lib\* Il percorso sopra rappresenta la posizione di jcommander.jar e testng.jar scaricata installando il TESTNG plugin per eclipse. Il percorso può variare in modo da essere sicuri di aprire il percorso di installazione di eclipse, andare ai plugin e cercare jcommander.jar. Quindi copia quella posizione e poi aggiungi * per selezionare tutti i .jars necessari.

 C:\Test 

Il percorso sopra rappresenta la posizione del test.xml nel tuo progetto. Dopo aver ottenuto tutti i percorsi necessari, aggiungili usando “;”.

Spero di essere stato utile ad alcuni di voi ragazzi 🙂

Grazie mille è stato davvero molto utile .. Sono stato in grado di eseguire le mie classi TestNG usando la riga di comando, ma comunque vorrei concludere le cose un’ultima volta come segue ..

 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 classs(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 

questo dovrebbe eseguire i tuoi casi di testNG.

Preparare il file MANIFEST.MF con il seguente contenuto

 Manifest-Version: 1.0 Main-Class: org.testng.TestNG 

Imballare tutte le classi di test e di dipendenza nello stesso contenitore, ad esempio tests.jar

 jar cmf MANIFEST.MF tests.jar -C folder-with-classs/ . 

Notare il termine “.”, Sostituire folder-with-classs/ con il nome o il percorso della cartella appropriata.

Crea testng.xml con contenuto come sotto

 < ?xml version="1.0" encoding="UTF-8"?> < !DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >        

Sostituisci com.example.yourcompany.qa.Test1 con percorso per la tua class di test.

Esegui i tuoi test

 java -jar tests.jar testng.xml 

Usando “;” come delimitatore sul problema di Windows è stato risolto.

 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 

Dovrai usare il punto e virgola come delimitatore mentre specifichi il percorso del file jar e class in windows. Questo ha risolto il problema.
Supponendo che il file di class sia in C :.

 java -cp ".;C:\testng.jar" org.testng.TestNG testing.xml 

Ho avuto qualche problema perché ho scaricato il plugin TestNG da Eclipse. Ecco cosa ho fatto per fare il lavoro:

  1. Dopo aver aggiunto TestNG alla libreria del progetto, crea una cartella nei nomi del progetto come lib (il nome può essere qualsiasi cosa):

  2. Vai a “C: \ Programmi \ Eclipse \ eclipse-java-mars-R-win32-x86_64 \ eclipse \ plugins” e copia il file com.beust.jcommander_1.72.0.jar e org.testng_6.14.2.r20180216145.jar alla cartella creata (lib).

Nota: i file sono testng.jar e jcommander.jar

  1. Ora Avvia CMD, vai alla directory del tuo progetto e poi digita:
    Java -cp C: \ Users \ User123 \ TestNG \ lib *; C: \ Users \ User123 \ TestNG \ bin org.testng.TestNG testng.xml

Questo è tutto !
Fammi sapere se hai altre preoccupazioni.

Sotto il comando funziona per me. A patto che tutti i barattoli necessari, incluso il barattolo di prova, siano conservati in lib.

 java -cp "lib/*" org.testng.TestNG testng.xml