Karate 空手道-在生成关于jenkins的报告时,它也在考虑测试数据文件夹中的json文件。为什么它在那里表现不同?

Karate 空手道-在生成关于jenkins的报告时,它也在考虑测试数据文件夹中的json文件。为什么它在那里表现不同?,karate,Karate,因此,cucumber报告插件无法生成正确的报告,因为它还包含来自测试数据文件夹的json文件 我的主要跑步者课程代码。还附加了我的文件夹结构的图像 类示例{ // this will run all *.feature files that exist in sub-directories // see https://github.com/intuit/karate#naming-conventions @Karate.Test Karate testAll() { return

因此,cucumber报告插件无法生成正确的报告,因为它还包含来自测试数据文件夹的json文件

我的主要跑步者课程代码。还附加了我的文件夹结构的图像

类示例{

// 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();
}
//这将运行子目录中存在的所有*.feature文件
//看https://github.com/intuit/karate#naming-惯例
@空手道测试
空手道测试{
返回Karate.run().relativeTo(getClass());
}
@试验
void testruninParallel(){
结果=Runner.parallel(getClass(),1,“目标/surefire报告”);
//Results=Runner.path(“classpath:examples”).tags(“~@ignore”).parallel(2);
ExamplesTest.generateReport(results.getReportDir());
如果(results.getFailCount()!=0){
System.out.println(results.getErrorMessages());
}
}
私有静态void生成器报告(字符串reportDir){
Collection jsonFiles=FileUtils.listFiles(新文件(reportDir),新字符串[]{“json”},true);
List jsonpath=newarraylist(jsonFiles.size());
forEach(file->jsonpath.add(file.`enter code here`getAbsolutePath());
配置配置=新配置(新文件(“目标”),“演示”);
ReportBuilder ReportBuilder=newreportbuilder(jsonpath,config);
reportBuilder.generateReports();
}
}


也许你的Jenkins在
目标/surefire报告中添加了一些额外的JSON文件
-你必须解决这个问题。如果需要,您可以尝试修改
generateReport
中的逻辑以忽略某些文件。

完全取决于jenkins上发生的事情,只有您可以在jenkins中找到我们附加的Cucumber reports插件。在该插件中,我们需要指定JSON报告路径。默认情况下,我认为它会考虑目标文件夹中的所有JSON文件。我在json报告路径中指定目标/surefire报告。现在它开始工作了