如何使用 Junit5 并行运行 Cucumber 场景

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

我正在使用黄瓜项目来执行测试场景。现在想使用Junit5并行执行。 项目详情

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-engine</artifactId>
    <version>5.10.2</version>
</dependency>
<dependency>
    <groupId>org.junit.platform</groupId>
    <artifactId>junit-platform-suite</artifactId>
    <version>1.10.2</version>
</dependency>
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-junit-platform-engine</artifactId>
    <version>7.18.0</version>
</dependency>
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-java</artifactId>
    <version>7.18.0</version>
</dependency>
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.11.0</version>
</dependency>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.1</version>
</plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>3.2.5</version>
</plugin>

带有跑步者文件

import org.junit.platform.suite.api.ConfigurationParameter;
import org.junit.platform.suite.api.IncludeEngines;
import org.junit.platform.suite.api.IncludeTags;
import org.junit.platform.suite.api.SelectClasspathResource;
import org.junit.platform.suite.api.Suite;

import static io.cucumber.junit.platform.engine.Constants.GLUE_PROPERTY_NAME;
import static io.cucumber.junit.platform.engine.Constants.PLUGIN_PROPERTY_NAME;
import static io.cucumber.junit.platform.engine.Constants.FILTER_TAGS_PROPERTY_NAME;

@Suite
@IncludeEngines("cucumber")
@SelectClasspathResource("Features")
@ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = "StepDef")
@ConfigurationParameter(key = PLUGIN_PROPERTY_NAME, value = "pretty")
public class RunJunit5Test {
}

我还在 src/test/resources 中添加了 junit-platform.porperties 文件并进行了配置

junit.jupiter.execution.parallel.enabled = true
junit.jupiter.execution.parallel.mode.default = concurrent
junit.jupiter.execution.parallel.config.strategy = fixed
junit.jupiter.execution.parallel.config.fixed.parallelism = 4

我尝试与 Surefire 插件进行不同的集成,但它不起作用。它总是一次只运行功能文件中的一个场景。

任何人都可以帮助我使用 JUnit5 并行执行测试吗?

junit5 cucumber-java cucumber-junit
1个回答
0
投票

1.1。什么是 JUnit 5?

与以前版本的 JUnit 不同,JUnit 5 由来自三个不同子项目的多个不同模块组成。

JUnit 5 = JUnit 平台 + JUnit Jupiter + JUnit Vintage

JUnit Jupiter 和 JUnit Vintage 是在 JUnit 平台上运行的测试引擎。 JUnit Vintage 用于 JUnit 4,Jupiter 用于 JUnit 5。与 Vintage 和 Jupiter 一样,Cucumber 是另一个在 JUnit 平台上运行的测试引擎。

当前您正在为 JUnit Jupiter 引擎配置

junit.jupiter.*
属性。这些对黄瓜没有任何作用。黄瓜使用
cucumber.*
属性。

最好的办法可能是扔掉你拥有的东西并从头开始,使用 cucumber-java-sculpture 作为基础。一旦示例正确执行,请从上到下阅读 cucumber-junit-platform-engine

 文档并实现并行执行。

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