运行 功能文件将在不同步骤 class 但在同一个包中触发 @before

Running feature file will trigger @before in different steps class but in the same package

我对 Cucumber-jvm/Selenium 还是很陌生,所以如果这个问题听起来很愚蠢,我很抱歉。

我的问题是,如果我运行一个特征文件作为黄瓜特征,在不同的步骤文件中执行运行 @before 因为它搜索所有的步骤。如果确实如此,那么如何使其 运行 成为我想要的步骤?我可以更改胶水代码的位置,但这是唯一的解决方案吗?

背景: 我是一家大公司的实习生。我正在为产品进行自动化软件测试。已经有一个现成的自动化测试步骤。我们要做的是扩展项目并添加我们自己的步骤。我创建了一个新的简单步骤 class 和功能文件只是为了尝试一下。它不起作用,因为每次我 运行 功能文件时,它都会触发我在不同步骤中假定为 @before 的东西。 @before 在包中的每个现有步骤中。如果我更改包并执行 运行 配置,我添加胶水代码的位置,事情就会起作用。我正在使用 Eclipse Photon。

Stepdef 和钩子方法本质上是全局的,即。如果它们存在于 runner 的 glue 选项中定义的包中,它们将在每个场景中被拾取。出路是在钩子上使用与场景匹配的标签。

有点像

@Before("@TagNew")

@TagNew
Scenario:....