空手道 - 在生成关于 jenkins 的报告时,它也在考虑测试数据文件夹中的 json 文件。为什么它在那里表现不同?
Karate - While generating report on jenkins, it is also considering json file from Test data folder too. Why it is behaving differently there?
因此,Cucumber 报告插件无法生成正确的报告,因为它还包含来自测试数据文件夹json 的文件
我的主跑代码class。还附上了我的文件夹结构的图片。
class 示例测试 {
// this will run all *.feature files that exist in sub-directories
// see https://github.com/intuit/karate#naming-conventions
@Karate.Test
Karate testAll() {
return Karate.run().relativeTo(getClass());
}
@Test
void testruninParallel() {
Results results = Runner.parallel(getClass(), 1, "target/surefire-reports");
// Results results = Runner.path("classpath:examples").tags("~@ignore").parallel(2);
ExamplesTest.generateReport(results.getReportDir());
if (results.getFailCount()!=0){
System.out.println( results.getErrorMessages());
}
}
private static void generateReport(String reportDir) {
Collection<File> jsonFiles = FileUtils.listFiles(new File(reportDir), new String[]{"json"}, true);
List<String> jsonPaths = new ArrayList(jsonFiles.size());
jsonFiles.forEach(file -> jsonPaths.add(file.`enter code here`getAbsolutePath()));
Configuration config = new Configuration(new File("target"), "demo");
ReportBuilder reportBuilder = new ReportBuilder(jsonPaths, config);
reportBuilder.generateReports();
}
}
也许您的 Jenkins 在 target/surefire-reports
中放置了一些额外的 JSON 文件 - 您必须修复它。如果需要,您可以尝试修改 generateReport
中的逻辑以忽略某些文件。
因此,Cucumber 报告插件无法生成正确的报告,因为它还包含来自测试数据文件夹json 的文件
我的主跑代码class。还附上了我的文件夹结构的图片。
class 示例测试 {
// this will run all *.feature files that exist in sub-directories
// see https://github.com/intuit/karate#naming-conventions
@Karate.Test
Karate testAll() {
return Karate.run().relativeTo(getClass());
}
@Test
void testruninParallel() {
Results results = Runner.parallel(getClass(), 1, "target/surefire-reports");
// Results results = Runner.path("classpath:examples").tags("~@ignore").parallel(2);
ExamplesTest.generateReport(results.getReportDir());
if (results.getFailCount()!=0){
System.out.println( results.getErrorMessages());
}
}
private static void generateReport(String reportDir) {
Collection<File> jsonFiles = FileUtils.listFiles(new File(reportDir), new String[]{"json"}, true);
List<String> jsonPaths = new ArrayList(jsonFiles.size());
jsonFiles.forEach(file -> jsonPaths.add(file.`enter code here`getAbsolutePath()));
Configuration config = new Configuration(new File("target"), "demo");
ReportBuilder reportBuilder = new ReportBuilder(jsonPaths, config);
reportBuilder.generateReports();
}
}
也许您的 Jenkins 在 target/surefire-reports
中放置了一些额外的 JSON 文件 - 您必须修复它。如果需要,您可以尝试修改 generateReport
中的逻辑以忽略某些文件。