2012-08-10 28 views
15

Come si esegue esattamente un progetto .java TestNG da una riga di comando?Come eseguire TestNG dalla riga di comando

Ho letto attraverso la documentazione TestNG, e ha cercato il seguente inutilmente:

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

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

<!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'errore Ho ottenuto è 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 facendo riferimento TestNG correttamente nella mia riga di comando. Qualcuno sa come farlo funzionare?

risposta

12

È necessario disporre di testng.jar in classpath.

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

Aggiornamento:

Sotto linux mi sono imbattuto questo comando e sarebbe qualcosa di simile su Windows sia

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

struttura di 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. 

volta Compilare 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 
    -- testclasses 
    -- Properties files if any. 
/lib 
    -- testng.jar 
    -- log4j.jar 

Update:

Vai alla cartella MyProject e il tipo di eseguire il comando java come come illustrato di seguito: -

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

credo che il file è in fase di testng.xml C:\Users\me\workspace\MyProject in caso contrario, indicare il percorso completo per il file testng.xml

+0

Grazie. Puoi fare un esempio con percorsi esatti? Ho provato qualcosa come C: \ projectfred> java -cp "C: \ path-tojar \ testng.jar: C: \ path_to_yourtest_classes" org.testng.TestNG testng.xml, ma come puoi vedere ci sono un sacco di due punti in questo e genera un errore. – fuzzyanalysis

+0

può per favore darmi la gerarchia in cui sono disponibili le vostre classi di test e librerie correlate? – Patton

+0

(macchina Windows 7) Classi di test: C: \ Users \ me \ workspace \ MyProject (questo è il punto in cui sono presenti tutti i file .java TestNG). Librerie correlate: C: \ Programmi \ jbdevstudio4 \ studio \ plugins. E 'questo che eravate dopo? – fuzzyanalysis

0

È necessario utilizzare il punto e virgola come delimitatore mentre si specifica il percorso del file jar e classe in Windows. Questo ha risolto il problema.
Supponendo che il file di classe sia inferiore a C :.

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

Utilizzando ";" come delimitatore sul tema finestre ottenuto risolto.

java -cp "path of class files; testng jar file path" org.testng.TestNG testng.xml 

es: -

java -cp ".\bin;..\common_lib\*;" org.testng.TestNG testng.xml 
4

Grazie mille è stato davvero molto utile .. Ero in grado di eseguire le mie classi TestNG utilizzando riga di comando, ma ancora vorrei wrap-up 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 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 

questo dovrebbe eseguire i casi di testNG.

3

Ok dopo 2 giorni di cercare di capire il motivo per cui non ho potuto provare 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 correzione di esso è la seguente: sono giunto alla seguente conclusione: Prima di tutto installare Eclipse, e scarica il plugin TestNG. Successivamente seguire le istruzioni del tutorial per creare e compilare la classe di test da cmd usando javac e aggiungere il testng.xml. Per eseguire il testng.xml sulle finestre 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 del jcommander.jar e testng.jar che avete scaricato installando il plugin TestNG per eclisse. 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 progetto. Dopo aver ottenuto tutti i percorsi necessari, aggiungerli utilizzando ";".

Spero di essere stato utile a qualcuno di voi ragazzi :)

1

Preparare MANIFEST.MF file con il seguente contenuto

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

pacchetto tutte le classi di test e di dipendenza nello stesso vaso, dicono tests.jar

Avviso ".", Sostituire folder-with-classes/ con nome cartella o percorso corretto.

Creare testng.xml con contenuti come di seguito

<?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> 

Sostituire com.example.yourcompany.qa.Test1 con il percorso per la classe di test.

eseguire i test

java -jar tests.jar testng.xml 
Problemi correlati