使用多个标签在空手道选项中运行

时间:2018-12-20 06:17:13

标签: testing cucumber bdd karate

假设我有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();
}
}

1 个答案:

答案 0 :(得分:2)

要在多个条件下使用tags进行测试,我们需要在标记中使用逻辑条件。

AND

运行同时具有@ F1和@ F2标签的所有功能。

{"@F1", "@F2"}

OR

要运行具有@ F1和@ F2标签之一的所有功能(同时运行)

{"@F1,@F2"}

组合OR和AND

要运行具有@ F1,@ F2,@ F3标签但不包含@ F4标签的功能

{"@F1,@F2,@F3","~@F4"}