我不了解cucumber的配置,也找不到任何关于这个的例子。
文件夹结构:
src/
|-test/
|-resources/
| |-cucumber/
| |-auth/
| | |-Login.feature
| |-contributions/
| |-ClearanceCertificates.feature
|-java/
|-de/
|-vbg/
|-other/
|-again/
|-important/
|-cucumber/
| |-auth/
| | |-LoginStepDefinitions.java
| |-contributions/
| |-ClearanceCertificatesStepDefinitions.java
|-CucumberBase.java
|-SeleniumApplicationTests.java
cucumberbase.java文件:
@RunWith(Cucumber.class)
@CucumberOptions(
features = "src/test/resources",
plugin = {"pretty", "html:build/reports/tests/test/cucumber.html"})
public class CucumberBase {}
seleniumapplicationtests.java文件:
@CucumberContextConfiguration
@SpringBootTest
class SeleniumApplicationTests {}
两者 *StepDefinitions.java
有一个 @Before
以及 @After
定义。我的假设是 StepDefinitions
与 *feature
-基于位置/包的文件。
但在我的测试中 Login.feature
执行 @After
定义在 ClearanceCertificatesStepDefinitions.java
.
如何正确配置?
1条答案
按热度按时间bqjvbblv1#
粘合路径上的所有步骤定义和钩子都是全局的。因此,所有场景都可以访问粘合路径上的所有步骤定义,并且在每个场景之前/之后执行粘合路径上的所有钩子。
如果您有只能针对特定场景执行的钩子,那么可以使用条件钩子。要仅在某些场景中运行特定的钩子,可以将before或after钩子与标记表达式相关联。
https://cucumber.io/docs/cucumber/api/#conditional-钩子
或者,您可以更改代码的组织。
cucumber将扫描转轮的包以获取胶水和特征,这样就可以编辑胶水和特征路径。通过设置
extraGlue
属性公共配置不必重复。