假设我有 4 个用 karate 版本 0.9.0 编写的功能文件。 我正在用 @F1 标记 feature 1,用 @F2 标记 feature 2,feature 3 @F3,特征 4 @F4。
另一方面,我有一个运行器类,它位于所有这些功能文件的根目录中。现在我想运行 @F1、@F2 和 @F3 但不是 @F4 标签。
我正在使用如下的 KarateOptions:
@KarateOptions(tags = {"@F1", "@F2", "@F3", "~@F4"} )
显然,我做错了什么,因为我的 cucumber-html-reports 文件中没有出现任何输出。
提前致谢。
编辑 1:这是我的整个 runner 类代码:
@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();
}
}
最佳答案
要使用具有多个条件的标签
运行测试,我们需要在标签中使用逻辑条件。
和:
运行同时具有@F1 和@F2 标签的每个功能。
{"@F1", "@F2"}
或:
要运行具有@F1 和@F2 标记之一的每个功能(同时运行)
{"@F1,@F2"}
结合 OR 和 AND:
运行具有@F1、@F2、@F3 标签但没有@F4 标签的功能
{"@F1,@F2,@F3","~@F4"}
关于testing - 使用多个标签在 Karate 选项中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53863358/