假设我有4个以空手道版本0.9.0编写的功能文件。 我将功能1 标记为 @ F1 ,将功能2 标记为 @ F2 ,功能3 和 @ F3 ,特征4 和 @ F4 。
另一方面,我有一个Runner类,它放在所有这些功能文件的根目录中。现在,我要运行 @ F1 , @ F2 和 @ F3 ,而不是 @ F4 标签。
我正在如下使用KarateOptions:
@KarateOptions(tags = {"@F1", "@F2", "@F3", "~@F4"} )
显然,我做错了,因为我的 cucumber-html-reports 文件中没有任何输出。
谢谢。
编辑1:这是我整个跑步者的代码:
@KarateOptions(tags = {"@F1", "@F2", "@F3", "~@F4"} )
public class TestRunnerAutomation {
@Test
public void testParallel() {
Results results = Runner.parallel(getClass(), 5);
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"), "demo");
ReportBuilder reportBuilder = new ReportBuilder(jsonPaths, config);
reportBuilder.generateReports();
}
}
答案 0 :(得分:2)
要在多个条件下使用tags
进行测试,我们需要在标记中使用逻辑条件。
AND :
运行同时具有@ F1和@ F2标签的所有功能。
{"@F1", "@F2"}
OR :
要运行具有@ F1和@ F2标签之一的所有功能(同时运行)
{"@F1,@F2"}
组合OR和AND :
要运行具有@ F1,@ F2,@ F3标签但不包含@ F4标签的功能
{"@F1,@F2,@F3","~@F4"}