es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Ejecutando pruebas desde diferentes módulos utilizando una suite de prueba de TestNG en un proyecto de múltiples módulos de Maven?

Quiero ejecutar pruebas unitarias presentes en diferentes módulos de mi proyecto maven desde un conjunto de pruebas testng que contiene clases de prueba específicas.
Un método que he intentado es crear otro módulo y agregar las dependencias de los diferentes módulos desde los que requiero las pruebas como un test-jar, pero este método requiere que añada todas las dependencias de los módulos que he agregado para las dependencias de prueba.

La estructura del proyecto es la siguiente:

Proyecto 
|
|- Módulo A
   |- src
   |- suitefiles
   |- pom.xml
|- Módulo B
   |- src
   |- suitefiles
   |- pom.xml
|-pom.xml (Pom padre)

He intentado agregar un tercer módulo de esta manera:

Proyecto 
|
|- Módulo A
   |- src
   |- suitefiles
   |- pom.xml
|- Módulo B
   |- src
   |- suitefiles
   |- pom.xml
|- Módulo C
   |- src
   |- suitefiles
   |- pom.xml  (A y B como dependencias aquí)
|-pom.xml (Pom padre)

Quiero evitar crear un módulo separado cada vez que quiero ejecutar pruebas combinadas de 2 módulos. ¿Hay alguna forma más sencilla?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Sí, puedes especificar directamente las clases de prueba de diferentes módulos en tu archivo XML de suite de TestNG utilizando la etiqueta y proporcionando los nombres de clase completamente calificados. Por ejemplo:

    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
    <suite name="MiSuiteDePrueba">
      <test name="PruebasDelModuloA">
        <classes>
          <class name="com.example.modulea.TestClass1"></class>
          <class name="com.example.modulea.TestClass2"></class>
        </classes>
      </test>
      <test name="PruebasDelModuloB">
        <classes>
          <class name="com.example.moduleb.TestClass3"></class>
          <class name="com.example.moduleb.TestClass4"></class>
        </classes>
      </test>
    </suite>
    

    Luego puedes ejecutar esta suite de TestNG desde la línea de comandos o desde tu IDE. En Maven, puedes usar el complemento surefire para ejecutar pruebas de TestNG. Por ejemplo:

    mvn test -DsuiteXmlFile=my-testng-suite.xml
    

    Esto ejecutará las pruebas especificadas en el archivo XML de suite de TestNG. No necesitas crear un módulo separado ni agregar dependencias solo para ejecutar pruebas.

Comments are closed.