- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 Java 和 maven 项目中,我使用 Cucumber 进行 BDD 测试。
这是我使用的依赖项:
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java</artifactId>
<version>4.2.0</version>
</dependency>
我的 Hooks
类:
import cucumber.api.java.After;
import cucumber.api.java.Before;
import cucumber.api.java.AfterStep;
import cucumber.api.java.BeforeStep;
public class Hooks {
@Before
public void init() {
System.out.println( " Before Scenario " );
}
@After
public void cleanUp() {
System.out.println( " After Scenario " );
}
@BeforeStep
public void beforeStep() {
System.out.println("======> This is before step <======");
//Do something before executing the step
}
@AfterStep
public void afterStep() {
System.out.println("======> This is after step <======");
}
}
但是当我运行 Cucumber 测试时,它只打印 Before Scenario
和 After Scenario
。 与此同时,我希望看到,这是在步骤之前
,这是在步骤之后
之前和之后每个步骤。
那么,为什么 @AfterStep
和 @BeforeStep
不起作用?
最佳答案
看看这个有效的小片段
假设以下结构
pom.xml
src/test/java/TestRunner.java
src/test/java/stepdefs/StepDefinitions.java
src/test/java/stepdefs/Hooks.java
src/test/resource/features/demo.feature
pom.xml
...
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.target>1.8</maven.compiler.target>
<version.cucumber>4.2.0</version.cucumber>
</properties>
<dependencies>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java</artifactId>
<version>${version.cucumber}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit</artifactId>
<version>${version.cucumber}</version>
<scope>test</scope>
</dependency>
</dependencies>
...
TestRunner.java
import org.junit.runner.RunWith;
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
@RunWith(Cucumber.class)
@CucumberOptions(
features = {"src/test/resource/features"},
glue = {"stepdefs"}
)
public class TestRunner {
}
StepDefinitions.java
package stepdefs;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;
public class StepDefinitions {
@Given("^a successful step$")
public void aSuccessfulStep() {
System.out.println(" aSuccessfulStep()");
}
@When("doing something")
public void doingSomething() {
System.out.println(" doingSomething()");
}
@Then("something happen")
public void somethingHappen() {
System.out.println(" somethingHappen()");
}
}
Hooks.java
package stepdefs;
import cucumber.api.java.After;
import cucumber.api.java.AfterStep;
import cucumber.api.java.Before;
import cucumber.api.java.BeforeStep;
public class Hooks {
@Before
public void init() {
System.out.println("@Before scenario");
}
@After
public void cleanUp() {
System.out.println("@After scenario");
}
@BeforeStep
public void beforeStep() {
System.out.println(" @BeforeStep");
}
@AfterStep
public void afterStep() {
System.out.println(" @AfterStep");
}
}
演示.feature
Feature: Test cucumber reporting plugin
Scenario: Run a non failing scenario
Given a successful step
When doing something
Then something happen
运行测试
$ mvn clean test
产生以下输出
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running TestRunner
@Before scenario
@BeforeStep
aSuccessfulStep()
@AfterStep
@BeforeStep
doingSomething()
@AfterStep
@BeforeStep
somethingHappen()
@AfterStep
@After scenario
1 Scenarios (1 passed)
3 Steps (3 passed)
关于Java:@AfterStep、@BeforeStep 在 cucumber 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53719701/
在我的java和maven项目中,我需要使用@Before、@After、@BeforeStep 和 @AfterStep。我添加了以下依赖项: info.cukes
在我的 Java 和 maven 项目中,我使用 Cucumber 进行 BDD 测试。 这是我使用的依赖项: io.cucumber cucumber-ja
我有一份工作,我处理并将所有文件从一个目录复制到另一个目录。 步骤后我想删除第一个目录,但在尝试删除处理的最后一个文件(复制)时出现错误。结果是一个只有 的文件夹。一 无法删除的文件,该文件恰好是最后
我正在编写一个在 Cucumber 的 AfterStep 回调上执行的方法。 https://github.com/cucumber/cucumber/wiki/Hooks#step-hooks 如
我已经使用此方法成功停止了之前步骤中的作业。 public class FirstListener implements StepExecutionListener { @Override publi
有什么方法可以在 Java 中将 @BeforStep 和 @AfterStep 注释与 cucumber 一起使用,以便这些函数在测试的每个测试步骤之前和之后执行。 最佳答案 是的,你可以。 目前你
如题所示,如何在cucumber.js的AfterStep hook中找到某步的结果? 最佳答案 我认为问题是关于 Cucumber.js 1.3x,它已经很老了。在 Cucumber.js 3.x
我是一名优秀的程序员,十分优秀!