No puedo ejecutar Test NG con nombre de clase personalizado de línea de comandos con Maven

Estoy usando el plugin de Selenium con Maven y TestNG en Intellij IDEA. Estoy tratando de ejecutar mis proyectos desde la línea de comandos usando "mvn prueba limpia". Este comando funciona bien cuando hago un nuevo proyecto que viene con "MainPageTest.java" como es la clase de prueba. Cuando cambio el nombre de clase / archivo a "Runner.java" o cualquier otra cosa puedo ejecutarlo desde el IDE pero no desde la línea de comandos. Este es el hilo cuando funciona.

[INFO] Scanning for projects...
[INFO]
[INFO] --------------------------< com.example:demo >--------------------------
[INFO] Building demo 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ demo ---
[INFO] Deleting C:\Users\Admin\IdeaProjects\demo\target
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ demo ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory C:\Users\Admin\IdeaProjects\demo\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ demo ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!
[INFO] Compiling 1 source file to C:\Users\Admin\IdeaProjects\demo\target\classes
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ demo ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory C:\Users\Admin\IdeaProjects\demo\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ demo ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!
[INFO] Compiling 1 source file to C:\Users\Admin\IdeaProjects\demo\target\test-classes
[INFO]
[INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ demo ---
[INFO]
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running com.example.demo.MainPageTest

// WebDriver related stuff

[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  17.200 s
[INFO] Finished at: 2020-12-16T22:42:10-05:00
[INFO] --------------------------------------

Esto es cuando cambio el nombre de la clase:

[INFO] Scanning for projects...
[INFO]
[INFO] --------------------------< com.example:demo >--------------------------
[INFO] Building demo 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ demo ---
[INFO] Deleting C:\Users\Admin\IdeaProjects\demo\target
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ demo ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory C:\Users\Admin\IdeaProjects\demo\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ demo ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!
[INFO] Compiling 1 source file to C:\Users\Admin\IdeaProjects\demo\target\classes
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ demo ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory C:\Users\Admin\IdeaProjects\demo\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ demo ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!
[INFO] Compiling 1 source file to C:\Users\Admin\IdeaProjects\demo\target\test-classes
[INFO]
[INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ demo ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  2.076 s
[INFO] Finished at: 2020-12-16T22:47:44-05:00
[INFO] ------------------------------------------------------------------------

Como puedes ver, no hay errores, pero no funciona la prueba. He intentado reconstruir el proyecto, ejecutar mvn clean install, y añadir un archivo testng.xml pero nada funciona y no hay mención de MainPageTest en ningún otro lugar del proyecto / config. Alguien por favor ayuda. Gracias.

Pregunta hecha hace 3 años, 5 meses, 0 días - Por nodenomad


3 Respuestas:

  • Lo descubrí, todo lo que hice fue específico mi testng.xml en mi pom.xml:

    xml version="1.0" encoding="UTF-8"?
    suite SYSTEM "http://testng.org/testng-1.0.dtd"
    
        
            
                
                    
                        
                        
                        
                        
                    
                
            
        
    
    
    org.apache.maven.plugins
    maven-surefire-plugin
    2.22.2
    
        true              
        
             TestNG suite XML files 
            testng.xml
        
    
    

    Respondida el Dec 17, 2020 a las 04:00 - por syntaxsorcerer

    Votos positivos: 0 | Votos negativos: 0

  • El problema que estás experimentando probablemente se deba a que TestNG no puede encontrar la clase de prueba correctamente al cambiar el nombre del archivo de prueba. Aquí hay algunas sugerencias para intentar solucionar este problema:

    • Asegúrate de que el nombre de la clase de prueba coincida exactamente con el nombre del archivo de prueba. Por ejemplo, si cambias el nombre del archivo a "Runner.java", la clase de prueba dentro del archivo debe ser nombrada "Runner" también.
    • Verifica que la anotación `@Test` esté presente en los métodos de prueba dentro de la clase de prueba. TestNG utiliza estas anotaciones para identificar los métodos de prueba.
    • Intenta especificar el nombre completo de la clase de prueba al ejecutar Maven desde la línea de comandos. Por ejemplo, en lugar de solo usar `mvn test`, intenta usar `mvn test -Dtest=com.example.demo.Runner`.
    • Puedes intentar también incluir la configuración de TestNG en un archivo `testng.xml` y luego ejecutar Maven con TestNG XML suite. Puedes especificar la ruta del archivo `testng.xml` al ejecutar el comando Maven. Por ejemplo, `mvn test -Dsurefire.suiteXmlFiles=testng.xml`.

    Estos son algunos pasos que podrías probar para solucionar el problema de ejecutar TestNG con un nombre de clase personalizado desde la línea de comandos con Maven. Espero que alguna de estas sugerencias te ayude a resolver el problema. ¡Buena suerte!

    Respondida el Dec 18, 2020 a las 03:59 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • El problema es que el complemento de Maven para TestNG busca la clase de prueba con el nombre "Test". Cuando cambiaste el nombre de la clase de prueba de "MainPageTest" a "Runner", el complemento ya no pudo encontrarla.

    Para solucionar este problema, puedes hacer una de las siguientes cosas:

    • Cambiar el nombre de la clase de prueba de nuevo a "Test"*: Esto es lo más sencillo, pero puede no ser deseable si quieres usar un nombre diferente para tu clase de prueba.
    • Usar una configuración personalizada para el complemento de Maven para TestNG: Puedes configurar el complemento para que busque clases de prueba con un nombre personalizado. Para hacer esto, agrega la siguiente configuración a tu archivo `pom.xml`:
    xml
    
      com.example.demo.Runner
    
    
    • Usar el objetivo "test" de Maven con el argumento "-Dtest"*: Puedes especificar el nombre de la clase de prueba mediante el argumento "-Dtest" al ejecutar el objetivo "test" de Maven. Por ejemplo:
    
    mvn test -Dtest=com.example.demo.Runner
    

    Te recomiendo usar la opción 1 o 2, ya que son más robustas y no requieren que especifiques el nombre de la clase de prueba cada vez que ejecutes las pruebas.

    Respondida el Dec 18, 2020 a las 04:09 - por Gemini

    Votos positivos: 0 | Votos negativos: 0