Cómo ejecutar TestNG desde la línea de comandos

¿Cómo exactamente ejecuto un proyecto .java TestNG desde una línea de comando?

He leído la documentación de TestNG y he intentado lo siguiente sin éxito:

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

… con el siguiente archivo testng.xml en mi proyecto:

         

El error que recibo es esto:

 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. 

Obviamente, no estoy haciendo referencia a TestNG correctamente en mi línea de comandos. ¿Alguien sabe cómo hacerlo funcionar?

Necesitas tener testng.jar en classpath.

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

Actualizar:

Bajo Linux, ejecuté este comando y sería algo similar en Windows, ya sea

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

Estructura de directorios:

 /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 vez que compilo todas las fonts, pasan al directorio bin. Entonces, en classpath necesito especificar los contenidos del directorio bin y todas las librerías como testng.xml, loggers, etc. aquí. Copie también la carpeta testng.xml a bin si no desea especificar la ruta completa donde testng.xml está disponible.

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

Update :

Vaya a la carpeta MyProject y escriba run the java command como se muestra a continuación:

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

Creo que el archivo testng.xml se encuentra en C:\Users\me\workspace\MyProject lo contrario, indique la ruta testng.xml archivo testng.xml

Ok después de 2 días de tratar de descubrir por qué no podía ejecutar el ejemplo de

http://www.tutorialspoint.com/testng/testng_environment.htm el siguiente código no funcionó para mí

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

La solución es la siguiente: llegué a la siguiente conclusión: el primer eclipse de instalación y descargué el complemento TestNG. Después de eso, siga las instrucciones del tutorial para crear y comstackr la clase de prueba desde cmd usando javac, y agregue el testng.xml. Para ejecutar testng.xml en Windows 10 cmd, ejecute la siguiente línea:

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

para aclarar: C:\Users\Lenovo\Desktop\eclipse\plugins\org.testng.eclipse_6.9.12.201607091356\lib\* La ruta anterior representa la ubicación de jcommander.jar y testng.jar que descargó instalando TESTNG plugin para eclipse. La ruta puede variar, así que asegúrese de abrir la ubicación de instalación de eclipse, vaya a los complementos y busque jcommander.jar. Luego copie esa ubicación y luego agregue * para seleccionar todos los .jar necesarios.

 C:\Test 

La ruta anterior representa la ubicación de testing.xml en su proyecto. Después de obtener todos los caminos necesarios, añádalos usando “;”.

Espero haber sido útil para algunos de ustedes, muchachos 🙂

Muchas gracias fue realmente muy útil. Pude ejecutar mis clases de TestNG usando la línea de comando, pero aún así me gustaría resumir las cosas por última vez de la siguiente manera.

 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 

esto debería ejecutar sus casos testNG.

Prepare el archivo MANIFEST.MF con el siguiente contenido

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

Empaque todas las clases de prueba y dependencia en el mismo tests.jar , por ejemplo, tests.jar

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

Observe el seguimiento de “.”, Reemplace folder-with-classes/ con el nombre o la ruta de la carpeta adecuada.

Crea testng.xml con contenido como debajo

          

Reemplace com.example.yourcompany.qa.Test1 con la ruta a su clase de prueba.

Ejecuta tus pruebas

 java -jar tests.jar testng.xml 

Se resolvió el uso de “;” como delimitador en el problema de Windows.

 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 

Tendrá que usar punto y coma como delimitador mientras especifica el archivo jar y la ruta del archivo de clase en Windows. Esto resolvió el problema.
Suponiendo que el archivo de clase está bajo C :.

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

Me enfrenté a un problema porque descargué el plugin TestNG de Eclipse. Aquí lo que hice para hacer el trabajo:

  1. Después de agregar TestNG a su biblioteca de proyectos, cree una carpeta en sus nombres de proyecto como lib (name puede ser cualquier cosa):

  2. Vaya a la ubicación “C: \ Archivos de progtwig \ Eclipse \ eclipse-java-mars-R-win32-x86_64 \ eclipse \ plugins” y copie el archivo com.beust.jcommander_1.72.0.jar y org.testng_6.14.2.r20180216145.jar a la carpeta creada (lib).

Nota: Los archivos son testng.jar y jcommander.jar

  1. Ahora ejecute CMD, navegue hasta su directorio de proyecto y luego escriba:
    Java -cp C: \ Users \ User123 \ TestNG \ lib *; C: \ Users \ User123 \ TestNG \ bin org.testng.TestNG testng.xml

Eso es !
Avísame si tienes más preocupaciones.

Debajo del comando funciona para mí. Siempre que todos los flasks necesarios, incluido el flask de prueba, estén dentro de lib.

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