1
votes

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'
}

2

2 Answers

1
votes

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

0
votes

Your best bet is to follow these instructions: https://github.com/intuit/karate/wiki/How-to-Submit-an-Issue

But just one observation, maybe this typo (repeated /com) is to blame ?

features="classpath:com/com/karate/test/workflow/"