空手道报告 - 有没有办法在执行完成之前生成空手道/黄瓜报告?

时间:2021-05-12 11:31:16

标签: report karate

我有一个要求,我需要下载几个文件(使用空手道功能文件完成)并将它们移动到特定文件夹(使用 Java 完成并在功能文件中调用它)。

在此期间,我需要检查是否下载了所有预期的文件。所以我在想的是,是否有办法在将报告移动到特定文件夹之前生成报告。所以从报告中我可以知道它是通过还是失败。

我有在 runner 类中生成黄瓜报告的代码,我尝试在功能文件中使用以下代码,但它没有运行.. 给出错误

* def report = Java.type('BI.BiTestRunner')
* def result3 = report.generateReport()

错误: BI.BiTestRunner 失败,原因是:Arity 错误 - 预期:1 实际:0

我的跑步者课程中的代码

package BI;

import com.intuit.karate.Results;
import com.intuit.karate.Runner;
import net.masterthought.cucumber.Configuration;
import net.masterthought.cucumber.ReportBuilder;
import org.apache.commons.io.FileUtils;
import org.junit.Test;

import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import static org.junit.Assert.assertTrue;


public class BiTestRunner {

    @Test
    public void testParallel() {
        System.setProperty("karate.env", "BI");
        Results results = Runner.path("classpath:BI/Fluent.feature").outputCucumberJson(true).tags("~@ignore").parallel(1);
        generateReport(results.getReportDir());
        assertTrue(results.getErrorMessages(), results.getFailCount() == 0);
    }

    public 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"), "qa-automation");
        ReportBuilder reportBuilder = new ReportBuilder(jsonPaths, config);
        reportBuilder.generateReports();
    }
}

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

不,你不能这样做。在空手道完成之前,generateReport() 所需的文件甚至都不存在。

这将需要一些高级 Java - 您可以参考标题为“重试框架”的 in this guide 部分。

<块引用>

使用一些自定义 Java 代码,您应该能够在 Runner 调用结束时进行任何失败的测试并重新尝试它们,并将结果合并回最终的聚合报告。见example code

如果以上方法没有帮助,请将此视为空手道不支持

相关问题