¿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:
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):
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
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