无法在最新的Java Cucumber Maven项目中使用JUnit5实现事件监听器

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

使用命令创建了一个新的 Java Cucumber 项目 -

mvn原型:生成“-DarchetypeGroupId=io.cucumber”“-DarchetypeArtifactId=cucumber-archetype”“-DarchetypeVersion=7.14.0”“-DgroupId=hellocucumber”“-DartifactId=hellocucumber”“-Dpackage=hellocucumber”“-Dversion =1.0.0-SNAPSHOT" "-DinteractiveMode=false"

创建了一个自定义监听器类 公共类 MyListener 实现 EventListener { . 。 。 }

由于@CucumberOptions在最新版本中不可用,您能否建议如何将这个MyListener类注册为执行监听器? 这是为了监听事件 - 开始执行之前、所有场景结束之后等。

搜索了很多博客。但找不到相关答案。几乎所有博客都提到早期版本的 Cucumber,其中 @CucumberOptions 可用。

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

您可以使用 JUnit 5 中的

ConfigurationParameter
注释来设置
cucumber.plugin
属性。例如:

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

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

@Suite
@IncludeEngines("cucumber")
@SelectClasspathResource("io/cucumber/skeleton")
@ConfigurationParameter(key = PLUGIN_PROPERTY_NAME, value = "pretty")
@ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = "io.cucumber.skeleton")
public class RunCucumberTest {
}

要定位您的插件,您可以使用值

your.package.MyListener
,对于多个插件,您可以使用逗号分隔的列表。

您还可以在

cucumber.plugin
文件中设置
junit-platform.propeties
属性。

值得阅读 JUnit 平台和 Cucumbers JUnit 平台引擎的文档:

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