首页 > 解决方案 > @Before 黄瓜钩子确实接受场景作为参数

问题描述

我正在尝试获取当前黄瓜场景的名称。

我正在使用 JUnit 4.10。当我添加@Before不带任何参数的方法时,该方法被成功调用。但是,如果我包含参数场景,那么我会得到:

cucumber.runtime.CucumberException:无法调用 stepDefinitions.beforeScenarios(场景)

import cucumber.annotation.Before;
import gherkin.formatter.model.Scenario;

public class stepDefinitions {
    public Scenario scenario = null;

    @Before
    public void beforeScenarios(Scenario scenario) {
        System.out.println("Method called");
    }
    ...

任何想法我做错了什么?

我更新了我的 pom.xml:

<dependency> 
  <groupId>org.seleniumhq.selenium</groupId> 
  <artifactId>selenium-java</artifactId> 
  <version>3.141.5</version> 
</dependency>
<dependency> 
  <groupId>io.cucumber</groupId>
  <artifactId>cucumber-java</artifactId>
  <version>4.3.1</version>
  <scope>test</scope>
</dependency>

<dependency>
  <groupId>io.cucumber</groupId>
  <artifactId>cucumber-junit</artifactId>
  <version>4.3.1</version>
  <scope>test</scope>
</dependency>

<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.12</version>
  <scope>test</scope>
</dependency>

标签: eclipsecucumber-junit

解决方案


下面是要导入的正确 API。

@Before - 导入 cucumber.api.java.Before;

场景- 导入 cucumber.api.Scenario;


推荐阅读