使用CLI并行运行功能文件,但在同一线程中运行方案?

问题描述

我已经阅读了Parallel Execution上的文档页面,对于CLI,唯一的选择似乎是使用--threads <COUNT>标志来增加并行度。但是,这将导致每个方案并行执行。

有没有一种方法可以指示我希望每个功能都可以并行执行,但是该功能中的每个场景都在同一线程上(顺序执行)?

我已经看到使用JUnit和Maven可以做到这一点,但是我使用的是JUnit和Gradle,这似乎不是一个选择。

解决方法

我想你可能想看看Courgette-JVM

它是 cucumber-jvm 的扩展,可以和 gradle 一起运行。它支持 junittestng 以及使用线程的并行测试

您可能需要更改您的 testrunner 类并添加 @CourgetteOptions 并在其中包含 @CucumberOptions,例如

import courgette.api.CourgetteRunLevel;
import courgette.api.testng.TestNGCourgette;
import cucumber.api.CucumberOptions;
import org.testng.annotations.Test;
@Test
@CourgetteOptions(
        threads = 2,runLevel = CourgetteRunLevel.FEATURE,rerunFailedScenarios = true,showTestOutput = true,reportTargetDir = "build",cucumberOptions = @CucumberOptions(
                features = "src/test/resources/features",glue = {"utils.hooks","steps"},tags = {"@Web"},plugin = {
                        "pretty","json:build/cucumber-report/cucumber.json","html:build/cucumber-report/cucumber.html"},strict = true
        ))

public class TestRunner extends TestNGCourgette {

} 

如果您想在示例中查看 Courgette-JVM,请查看此使用 gradle 的 parallel test execution 示例

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...