Necesito invocar a Cucumber Runner a través de gradle y que a su vez hace toda la ejecución de prueba y también genera informes.

3 minutos de lectura

Avatar de usuario de Balaji Singh .Y
Balaji Singh .Y

No estoy seguro de si podemos ejecutar la clase de corredor de pepino que, a su vez, ejecuta todas las pruebas e incluso hace la parte de informes también.

Al igual que en el proyecto Cucumber Maven, ejecutamos el archivo del corredor Cucumber para ejecutar las pruebas e incluso genera los informes después de la ejecución en el mismo contexto, ¿es factible en gradle llamando a la clase del corredor Cucumber?

Mi corredor de pepino es el siguiente

    import org.testng.annotations.AfterClass;
import io.cucumber.testng.AbstractTestNGCucumberTests;
import io.cucumber.testng.CucumberOptions;


     @CucumberOptions(features = { "classpath:featurefile" }, glue = { "classpath:com.hals.brands.test.stepdefinition",
            "classpath:com.hals.brands.helper" }, plugin = { "pretty", "json:target/HalsprosBrands.json",
                    "com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter:" }, monochrome = true, tags = "@Api")
    
    
    public class **HalProsbrandsTestRunner** extends AbstractTestNGCucumberTests {
    
        
        @AfterClass(alwaysRun = true)
        public static void writeExtentReport() {
                
            ReporterUtil.archiveReport();
            
        }
        
    }
    

    package runners;
    
    import com.cucumber.listener.ExtentProperties;
    import com.cucumber.listener.Reporter;
    import cucumber.api.CucumberOptions;
    import cucumber.api.junit.Cucumber;
    import org.junit.BeforeClass;
    import org.junit.runner.RunWith;
    import stepDefinations.Hooks;
    
    @RunWith(Cucumber.class)
    @CucumberOptions(
            features = ".//test//java//FeatureList",glue = "stepDefinations",
            plugin = { "com.cucumber.listener.ExtentCucumberFormatter:",
                    "junit:target/cucumber-results.xml"},
            tags="@Smoke-Login",
            monochrome = true
    )
    public class TestRunner {
    
        @BeforeClass
        public static void setup(){
            //Initializing extent reporting here
}
}

Aquí estoy básicamente inicializando mi característica de pepino y definición de clase.

plugins {
    id 'java'
}

group 'org.mytest'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

repositories {
    mavenCentral()
}
dependencies {
    //junit
    testCompile 'junit:junit:4.12'
    compile group: 'org.testng', name: 'testng', version: '6.10'
    //cucumber
    compileOnly 'info.cukes:cucumber-jvm-deps:1.0.5'
    compile group: 'info.cukes', name: 'gherkin', version: '2.12.2'
    compile group: 'net.masterthought', name: 'cucumber-reporting', version: '3.18.0'
    testCompile group: 'info.cukes', name: 'cucumber-junit', version: '1.2.5'
    testCompile group: 'info.cukes', name: 'cucumber-picocontainer', version: '1.2.4'
    compile group: 'info.cukes', name: 'cucumber-java', version: '1.2.4'
    //reporting
    compile 'com.vimalselvam:cucumber-extentsreport:3.0.2'
    compile 'com.aventstack:extentreports:3.1.2'
    compile 'com.aventstack:extentreports:3.1.2'
    //logger
    compile group: 'log4j', name: 'log4j', version: '1.2.17'
    //selenium
    compile group: 'org.seleniumhq.selenium', name: 'selenium-chrome-driver', version: '3.14.0'
    compile group: 'org.seleniumhq.selenium', name: 'selenium-remote-driver', version: '3.14.0'
    compile group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '3.14.0'
    compile group: 'org.seleniumhq.selenium', name: 'selenium-server', version: '3.14.0'
    //compile group: 'org.seleniumhq.selenium', name: 'selenium-server', version: '2.53.1'

}

test {
    reports {
        junitXml.enabled = true
        html.enabled = false
    }
    testLogging {
        events 'passed', 'failed', 'standardError'
        showStandardStreams = true
    }
}

Aquí para ejecutar esto, necesita usar el comando

construir o probar gradle

el comando debe ejecutarse en la terminal. Déjeme saber si esto ayuda.

  • Para mi caso esto no funciona. Mi configuración es un poco diferente. Lo descubrí con la tarea Cucumber, donde incluí el pegamento, el archivo de funciones y usé ExtentCucumberAdapter para los informes. Ahora funciona bien, lo único es que el registro no funciona, quiero decir que los registros se escriben en el archivo de registro

    – Balaji Singh .Y

    10 de septiembre de 2020 a las 15:24

  • De todos modos, gracias por responder y agradecería que me ayudes en la parte de registro. para iniciar sesión iam usando Log4j

    – Balaji Singh .Y

    10 sep 2020 a las 15:25

¿Ha sido útil esta solución?