空手道:如何通过 Maven 命令行设置线程数?

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

我有一个如下所示的 TestRunner:

public void myTests() {

    Results results = Runner.path("classpath:...")
            .outputCucumberJson(true)
            .parallel(5);
    Results initialResults = results;
 }

我使用以下命令通过 Maven 运行测试:

mvn clean test -Dkarate.options="--tags @TestSuite1 classpath:myfolderoffeatures"

我想根据我通过 Maven 的测试动态更改当前设置为 5 的线程数

我尝试添加 -Dkarate.options="--threadcount=10" 但无法识别

karate
2个回答
0
投票

到目前为止,只有标签和功能/路径可以通过

karate.options
覆盖。同时,您可以做的是将其作为单独的环境变量或等效变量传递,并从 Java 运行程序中将其解压。您可以编写多个 Java“入口点”来满足 CI 或其他方面的这些需求。

正如我在下面的评论中提到的,这可能是一个需要改进的领域。


0
投票

我们将线程数作为参数传递给 maven 命令,但在 karate.options 之外,它对我们来说效果很好。

  Results results = Runner
            .path("classpath:")
            .outputCucumberJson(true)
            .reportDir(karateOutputPath)
            .parallel(Integer.parseInt(System.getProperty("threadCount", "1")));

在上面的代码块中,threadCount是maven命令中的属性,如果maven命令中没有threadCount的系统属性,则1是默认线程数。

这是它在maven命令中的使用方式-

-Dkarate.env=UAT
-Dtest=RunTestsParallel
-Dkarate.options="--tags @runme12345"
-Dthread.count=5
© www.soinside.com 2019 - 2024. All rights reserved.