如何从 java 应用程序而不是 JUnit 测试中 运行 空手道

How to run Karate from java application not from JUnit test

我设法 运行 使用 Junit 进行了空手道测试。但我想要的是 运行 来自 java 应用程序的空手道而不是 Junit 运行ner.

目前我运行来自 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);
}
}

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

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

但是我有这个错误:

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

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

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

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

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