我正在使用黄瓜项目来执行测试场景。现在想使用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 并行执行测试吗?
与以前版本的 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