Search code examples
cucumberkaratecucumber-junit

Test not getting picked during parallel run and no report getting generated


Im trying to run karate Api test code but During parallel run, Test no getting picked by KarateOptions. Cucumber Report too not getting generated.

package com.karate.test;
@KarateOptions(features="classpath:com/com/karate/test/workflow/",tags = "~@ignore")
)
public class KarateTest {

    @Test
    public void testParallel() {
        System.setProperty("karate.env", "qa1");
        Results results = Runner.parallel(getClass(), 2));
        generateReport(results.getReportDir());
        assertTrue(results.getErrorMessages(), results.getFailCount() == 0);
    }

    public static void generateReport(String karateOutputPath) {
        Collection<File> jsonFiles = FileUtils.listFiles(new File(karateOutputPath), new String[] {"json"}, true);
        List<String> jsonPaths = new ArrayList(jsonFiles.size());
        jsonFiles.forEach(file -> jsonPaths.add(file.getAbsolutePath()));
        Configuration config = new Configuration(new File("target"), "qa1");
        ReportBuilder reportBuilder = new ReportBuilder(jsonPaths, config);
        reportBuilder.generateReports();
    }

Gradle configuration :

test {
    def env = System.properties.getProperty("env")
    systemProperty "karate.env", env
    systemProperty "karate.options", "--tags " + System.properties.getProperty("tags")
    outputs.upToDateWhen { false }
}

Dependencies in Gradle :

dependencies {
    testCompile 'com.intuit.karate:karate-apache:0.7.0'
    testCompile 'com.intuit.karate:karate-core:0.7.0'
    testCompile 'com.jayway.jsonpath:json-path:2.1.0'
    testCompile 'org.apache.httpcomponents:httpclient:4.5.5'
    testCompile 'org.apache.httpcomponents:httpcore:4.4.9'
    testCompile 'commons-codec:commons-codec:1.10'
    testCompile 'org.slf4j:jcl-over-slf4j:1.7.25'
    testCompile 'org.slf4j:slf4j-api:1.7.25'
    testCompile 'com.intuit.karate:karate-junit4:0.9.2'
    testCompile 'org.hamcrest:hamcrest-core:1.3'
    testCompile 'net.masterthought:cucumber-reporting:4.6.0'

    compile 'org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M3'
    compile 'org.apache.maven.surefire:surefire:3.0.0-M3'
    compile group: 'org.apache.geronimo.specs', name: 'geronimo-jms_1.1_spec', version: '1.1.1'
}


Solution

  • It worked with latest version. Upgraded to latest version.

    `testCompile 'com.intuit.karate:karate-junit4:0.9.2' testCompile 'com.intuit.karate:karate-apache:0.9.2' testCompile 'com.intuit.karate:karate-core:0.9.2'

    For the reference of others: https://github.com/intuit/karate#test-reports