运行 来自我的 java 应用程序的 JUnit 测试

Run a JUnit test from my java application

我正在尝试从我的 java 应用程序中 运行 Junit 测试。

这是 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 调用它时:

public static void main(String[] args) {
    JUnitCore junit = new JUnitCore();
    Result result = junit.run(TestParallel.class);
}

我收到这个错误

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

知道如何解决这个问题吗?

您需要添加在您的 class 路径中找不到的 class。如果使用 Maven,请验证您的范围是否正确定义。例如,范围不应该是 <scope>provided</scope>

你为什么甚至从 static main() 上下文调用你的 classes?

如果您真的想那样执行测试,请确保删除黄瓜内容的 <scope>test</scope>

感谢您的回复。我设法通过删除

让它工作
      <scope>test</scope>

来自 pom。