运行 来自我的 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。
我正在尝试从我的 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。