Saltar al contenido

Cómo pasar código java un parámetro de maven para probar

Esta es la respuesta más válida que encomtrarás aportar, pero obsérvala detenidamente y analiza si se puede adaptar a tu proyecto.

Solución:

Esto es exactamente lo que estaba buscando para mi prueba de automatización y lo hice funcionar.

Argumento de línea de comando

mvn clean test -Denv.USER=UAT -Dgroups=Sniff

Mi Pom Xml



    4.0.0
    TestNg
    TestNg
    1.0

    
        
            org.testng
            testng
            6.8
            test
        
    
    
        
            
                org.apache.maven.plugins
                maven-surefire-plugin
                2.12.4
                
                    
                        $env.USER
                    
                
            
        
    

Prueba de prueba NG

import org.testng.annotations.Parameters;
import org.testng.annotations.Test;


public class TestAuthentication 

    @Test (groups =  "Sniff", "Regression" )
    public void validAuthenticationTest()
        System.out.println(" Sniff + Regression" + System.getProperty("environment"));
    

    @Test (groups =  "Regression" ,parameters = "environment")
    public void failedAuthenticationTest(String environment)
        System.out.println("Regression-"+environment);
    

    @Parameters("environment")
    @Test (groups =  "Sniff")
    public void newUserAuthenticationTest(String environment)
        System.out.println("Sniff-"+environment);
    


Lo anterior funciona bien. Además, si necesita utilizar testng.xmlpuede especificar el suiteXmlFile me gusta …

      
            org.apache.maven.plugins
            maven-surefire-plugin
            2.12.4
            
                
                    $env.USER
                
                 
                    testng.xml
                
            
        

Además, prefiero usar @Parameters en vez de parameters en @Test() ya que el último está en desuso.

No necesita definir nada para los grupos en testng xml o pom, el soporte viene incorporado. Simplemente puede especificar los grupos en la línea cmd http://maven.apache.org/plugins/maven-surefire-plugin/test-mojo.html#groups

Espero eso ayude..

Edición 2:

Ok… así que aquí hay otra opción… Implementar IMethodInterceptor

Defina su propiedad personalizada. Use -Dcustomproperty=groupthatneedstoberrun en su llamada de línea de comandos.

En la llamada de intercepción, analice todos los métodos… algo en el sentido…

System.getProperty("customproperty");
for(IMethodInstance ins : methods) 
    if(ins.getMethod().getGroups()) contains group)
        Add to returnedVal;
    
return returnedVal;

Agregue esto a la lista de oyentes en su xml.

Perfecto.

La forma más sencilla de pasar la variable de POM.xml a ABC.java

POM.xml


   myhostname.com

Y en el ABC.java podemos llamarlo desde las propiedades del sistema como este

System.getProperty("hostName")

Recuerda comunicar esta crónica si te valió la pena.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *