java - @After 不起作用(带有 SenerityBDD 的黄瓜)
问题描述
我的问题:我正在使用 Cucumber 和 senerityBDD JAVA。在我的项目中,@after 在我阅读的 senerity 文档之后无法工作。
我的钩子类:
package com.TestSuite;
import cucumber.api.CucumberOptions;
import cucumber.api.java.After;
import net.serenitybdd.core.Serenity;
import net.serenitybdd.cucumber.CucumberWithSerenity;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import static com.netdreamers.utils.Performance.PerformanceController.*;
@RunWith(CucumberWithSerenity.class)
@CucumberOptions(features = "src/test/resources/features", tags = "@testCase")
public class TestSuite{
@BeforeClass
public static void beforeClass(){
System.out.println("Start BeforeClass");
}
@AfterClass
public static void afterClass() {
System.out.println("Start AfterClas");
}
@After
public void afterScenario(){
System.out.println("After Scenario");
}
}
我的功能文件:
Feature: Access to Url
Background:
Scenario Outline: Access to Url
Given I access to the Url at line "<index>"
Examples:
| index |
| 0 |
| 1 |
正如预期的那样,@after 注释应该可以工作,它应该在场景之后调用。所以请有人可以告诉我当场景 Ouline 为示例表“索引”变量重复时,@after 注释在 2 循环后不起作用的原因?
解决方案
AFAIK@After
仅适用于步骤代码。将您的选项更新为
@CucumberOptions(features = "src/test/resources/features", glue =
"com.testsuite.steps", tags = "@testCase" )
并将后代码移动到新的步骤类
package com.testsuite.steps;
import cucumber.api.java.After;
public class TestSteps {
@After
public void afterScenario(){
System.out.println("After Scenario");
}
}
推荐阅读
- android - 在 Firestore 快照的情况下是否需要检查无效性?
- radio - Azuracast 侦听器统计显示小数值,这是什么意思?
- loops - ansible - 使用变量数组并循环遍历它
- r - 通过随机抽样现有数据生成 n 个新数据集,然后将函数应用于新数据集
- smartcard - 如何通过 APDU 命令将 X509 证书存储在 SmartCard 中
- c# - 使用 NEST 使用 ElasticSearch 2.x 搜索多种类型时,如何获得混合结果?
- mysql - 如何检查 INSERT INTO SELECT 块中一列的两个不同条件?
- javascript - 筛选多个类别的产品
- jfreechart - 在 JFreeChart 中连接设计信封点
- awk - GAWK 使用 -i inplace 选项将字符串打印到 STDOUT