如何从空手道 运行 进行 junit 测试?
How to run junit tests from karate?
可以 运行 空手道的 junit 测试吗?
作为项目的一部分,我们需要添加 junit 测试(由开发人员编写)和空手道测试(由 QA 编写)
正在寻找一种从空手道调用 junit 测试的方法。这样就可以轻松地同时维护 Dev 和 QA 测试。
如果答案是肯定的,请举出例子
可以通过Junit调用测试
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.cucumber.CucumberRunner;
import com.intuit.karate.cucumber.KarateStats;
import cucumber.api.CucumberOptions;
import net.masterthought.cucumber.Configuration;
import net.masterthought.cucumber.ReportBuilder;
@CucumberOptions(features = {"classpath:features"}, tags = {"@sanity"})
public class RunnerTest {
@Test
public void testParallel() {
String karateOutputPath = "target/cucumber-html-reports";
KarateStats stats = CucumberRunner.parallel(getClass(), 1, karateOutputPath);
generateReport(karateOutputPath);
assertTrue("there are scenario failures", stats.getFailCount() == 0);
}
private static void generateReport(String karateOutputPath) {
Collection<File> jsonFiles =
FileUtils.listFiles(new File(karateOutputPath), new String[] {"json"}, true);
List<String> jsonPaths = new ArrayList(jsonFiles.size());
jsonFiles.forEach(file -> jsonPaths.add(file.getAbsolutePath()));
Configuration config = new Configuration(new File("target"), "demo");
ReportBuilder reportBuilder = new ReportBuilder(jsonPaths, config);
reportBuilder.generateReports();
}
}
检查@sanity 标签应该是特征文件的一部分并且应该在第一行
可以 运行 空手道的 junit 测试吗?
作为项目的一部分,我们需要添加 junit 测试(由开发人员编写)和空手道测试(由 QA 编写)
正在寻找一种从空手道调用 junit 测试的方法。这样就可以轻松地同时维护 Dev 和 QA 测试。
如果答案是肯定的,请举出例子
可以通过Junit调用测试
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.cucumber.CucumberRunner;
import com.intuit.karate.cucumber.KarateStats;
import cucumber.api.CucumberOptions;
import net.masterthought.cucumber.Configuration;
import net.masterthought.cucumber.ReportBuilder;
@CucumberOptions(features = {"classpath:features"}, tags = {"@sanity"})
public class RunnerTest {
@Test
public void testParallel() {
String karateOutputPath = "target/cucumber-html-reports";
KarateStats stats = CucumberRunner.parallel(getClass(), 1, karateOutputPath);
generateReport(karateOutputPath);
assertTrue("there are scenario failures", stats.getFailCount() == 0);
}
private static void generateReport(String karateOutputPath) {
Collection<File> jsonFiles =
FileUtils.listFiles(new File(karateOutputPath), new String[] {"json"}, true);
List<String> jsonPaths = new ArrayList(jsonFiles.size());
jsonFiles.forEach(file -> jsonPaths.add(file.getAbsolutePath()));
Configuration config = new Configuration(new File("target"), "demo");
ReportBuilder reportBuilder = new ReportBuilder(jsonPaths, config);
reportBuilder.generateReports();
}
}
检查@sanity 标签应该是特征文件的一部分并且应该在第一行