标记空手道测试运行没有完成jenkins

问题描述 投票:2回答:1

有时当我在jenkins上运行带有逻辑OR标签选择的测试(karate.options =“ - tags @ vld,@ command-composition”)时,测试会在结束时执行,但永远不会退出

Results results = Runner.parallel(getClass(),5 , karateOutputPath);

这肯定是空手道和詹金斯的问题,因为当在本地机器上执行时,问题从未发生过。

此外,当单独选择标签时(例如“--tags @vld”或“--tags @ command-composition”),问题不会发生。甚至在詹金斯身上。

这是我用于并行执行测试的并行运行器类。我添加了一些日志记录调试输出,以阐明执行运行到无限循环的位置。

执行没有退出测试执行:

Results results = Runner.parallel(getClass(),5 , karateOutputPath);

因此(包括)之后的一切

logger.debug("DEBUG-LOG: AFTER TEST - BEFORE REPORT GENERATION");

从未被执行过。

@KarateOptions(tags = {"~@ignore"})
public class ParallelRunner {

    private static final Logger logger = LoggerFactory.getLogger("com.intuit.karate");

    @Test
    public void testParallel() throws IOException {

        // RESET LAST USED ICCID
        Helper.resetLastIccid();

        String outputPath = "build";
        String karateOutputPath = outputPath + "/surefire-reports";
        logger.debug("DEBUG-LOG: BEFORE TEST");
        Results results = Runner.parallel(getClass(),5 , karateOutputPath);
        logger.debug("DEBUG-LOG: AFTER TEST - BEFORE REPORT GENERATION");
        generateReport(karateOutputPath);
        logger.debug("DEBUG-LOG: AFTER GEN REPORT");
        assertTrue("scenarios failed", results.getFailCount() == 0);
    }

    private static void generateReport(String karateOutputPath) {
        logger.debug("DEBUG-LOG: IN GEN REPORT");
        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("build"), "MH Conan Mobile Systemtest");
        ReportBuilder reportBuilder = new ReportBuilder(jsonPaths, config);
        reportBuilder.generateReports();
    }
}

我还使用已使用线程的数量和并行执行== false来玩arround。似乎没有任何帮助。

我还比较了本地运行和jenkins构建之间的surefire-reports输出文件夹。有关已执行功能的所有surefire报告都在那里,但在jenkins上,结果-json.txt和timeline.html缺失。

那么,是否还有人经历过这种行为?或者有进一步的想法如何调试或至少以某种方式缩小这个问题?

非常感谢帮助! :)

空手道版本:0.9.2(最新)

jenkins karate
1个回答
2
投票

有两个功能分别具有@ feature1和@ feature2标记,运行时

mvn clean install -Dkarate.options="--tags @feature1,@feature2"

两个功能都播放。这不是AND标签选择,而是OR标签选择。同

mvn clean install -Dkarate.options="--tags @feature1 --tags @feature2"

这两个功能都没有播放。这是AND选择。

除此之外,你有没有尝试创建一个最小的空手道项目,只有几个功能只是做几个简单的步骤,并在Jenkins上启动它?

© www.soinside.com 2019 - 2024. All rights reserved.