我想从功能文件中获取场景的文本名称并将其存储到变量或在我的步骤定义中打印它。下面是我的代码:
功能文件:
Feature: Login
I want to use this template for my feature file
Scenario Outline: Login with correct credentials
Given the user is on the login page
步骤定义:
public class Login implements Data{
WebDriver driver;
LoginPage loginPage;
@Given("^the user is on the login page$")
public void navigateToURL() {
System.setProperty(DRIVER, DRIVER_LOCATION);
driver = new FirefoxDriver();
loginPage = new LoginPage(driver);
loginPage.visit(BASE_URL);
loginPage.clickLoginLink();
//System.out.println("Testing Scenario" + *<scenario name>*)
}
}
我想打印场景大纲文本:使用正确的凭据登录。感谢你的帮助。谢谢!
最佳答案
您可以添加一个Before Hook,并在hook内打印出场景名称,如下所示:
import cucumber.api.Scenario;
import cucumber.api.java.Before;
@Before
public void printScenarioName(Scenario scenario) {
System.out.println("Run into Before Hook: printScenarioName");
System.out.println("Print Scenario name in Before Hook: " + scenario.getName());
}
下面是对 Maven pom.xml 的依赖
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- Test tools -->
<junit.version>4.12</junit.version>
<!-- Cucumber version -->
<cucumber.version>1.2.5</cucumber.version>
</properties>
<dependencies>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-java8</artifactId>
<version>${cucumber.version}</version>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-junit</artifactId>
<version>${cucumber.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
如果您不使用 Maven,请下载以下 jar 并将它们添加为项目库
以上代码在我的本地工作,您可以从 my github 获取它们
关于java - 如何从要获取步骤定义java代码的功能文件中获取场景名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48533246/