Sandeep P
Sandeep P

Reputation: 109

Karate runner class example for executing project with mvn test -Dcucumber.options="--tags @golden"

My Runner class is below, when i execute mvn test -Dcucumber.options="--tags @golden" command, i dont see my golden scenarios running!

package apiTest;

import static org.junit.Assert.assertTrue;
import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import org.apache.commons.io.FileUtils;
import org.junit.Test;

import com.intuit.karate.KarateOptions;
import com.intuit.karate.Results;
import com.intuit.karate.Runner;

import io.cucumber.junit.CucumberOptions;
import net.masterthought.cucumber.Configuration;
import net.masterthought.cucumber.ReportBuilder;


@KarateOptions(tags = {"~@ignore"})
@CucumberOptions(
        features = {"src/test/java/featureFiles"},
        plugin = { "pretty", "html:target/cucumber-reports"}, 
        monochrome = true)

public class RunnerTest {

    @Test
    public void testParallel() {
        Results results = Runner.parallel(getClass(), 10, "target/surefire-reports");
        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<String>(jsonFiles.size());
        jsonFiles.forEach(file -> jsonPaths.add(file.getAbsolutePath()));
        Configuration config = new Configuration(new File("target"), "API Tests");
        ReportBuilder reportBuilder = new ReportBuilder(jsonPaths, config);
        reportBuilder.generateReports();
    }
}

Any runner class examples? i am using junit4!

Upvotes: 1

Views: 7164

Answers (2)

Sandeep P
Sandeep P

Reputation: 109

Finally below code worked, Thanks Peter using 0.9.6.RC2 and command line is mvn test -Dkarate.options="--tags @golden"

package apiTest;

import static org.junit.Assert.assertTrue;

import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import org.apache.commons.io.FileUtils;
import org.junit.Test;

import com.intuit.karate.KarateOptions;
import com.intuit.karate.Results;
import com.intuit.karate.Runner;

import net.masterthought.cucumber.Configuration;
import net.masterthought.cucumber.ReportBuilder;


@KarateOptions(features="classpath:featureFiles", tags="~@ignore")

public class RunnerTest {

    @Test
    public void testParallel() {
        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<String>(jsonFiles.size());
        jsonFiles.forEach(file -> jsonPaths.add(file.getAbsolutePath()));
        Configuration config = new Configuration(new File("target"), "API Tests");
        ReportBuilder reportBuilder = new ReportBuilder(jsonPaths, config);
        reportBuilder.generateReports();
    }
}

Upvotes: 1

Peter Thomas
Peter Thomas

Reputation: 58058

You probably ran into this issue: https://github.com/intuit/karate/issues/1061

Can you try with version 0.9.6.RC2 ?

Upvotes: 0

Related Questions