如何从Java应用程序运行Karate而不是从JUnit测试

时间:2018-02-05 15:36:21

标签: karate

我设法使用Junit运行空手道测试。但我想要的是从Java应用程序而不是Junit runner运行Karate。

目前我正在从JUnit运行:

import com.intuit.karate.cucumber.CucumberRunner;
import com.intuit.karate.cucumber.KarateStats;
import cucumber.api.CucumberOptions;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
@CucumberOptions(tags = {"~@ignore"})
public class TestParallel {

@Test
public void testParallel() {
    KarateStats stats = CucumberRunner.parallel(getClass(), 5, "target/surefire-reports");
    assertTrue("scenarios failed", stats.getFailCount() == 0);
}
}

我尝试使用以下代码从我的应用程序main调用Junit类:

    JUnitCore junit = new JUnitCore();
    Result result = junit.run(TestParallel.class);

但我有这个错误:

java.lang.NoClassDefFoundError: com/intuit/karate/cucumber/CucumberRunner

2 个答案:

答案 0 :(得分:1)

是的,请使用此处记录的Java API:https://github.com/intuit/karate#java-api

请注意,如果沿着这条路走下去,就不会收到报告。

答案 1 :(得分:1)

我通过从pom中的空手道依赖项中删除测试范围来解决问题。

一切正常,包括报告和输出。