我有一个要求,我需要下载几个文件(使用空手道功能文件完成)并将它们移动到特定文件夹(使用 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();
}
}
有人可以帮我吗?
答案 0 :(得分:0)
不,你不能这样做。在空手道完成之前,generateReport()
所需的文件甚至都不存在。
这将需要一些高级 Java - 您可以参考标题为“重试框架”的 in this guide 部分。
<块引用>使用一些自定义 Java 代码,您应该能够在 Runner 调用结束时进行任何失败的测试并重新尝试它们,并将结果合并回最终的聚合报告。见example code。
如果以上方法没有帮助,请将此视为空手道不支持。