空手道 - 在生成关于 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 中的逻辑以忽略某些文件。