在特定特征之前/之后执行黄瓜步骤

2022-09-01 06:06:43

我想为每个特定功能文件指定某些设置并删除步骤。我见过允许代码在每个方案之前执行的钩子,以及在每个功能之前执行代码的钩子,但我想指定代码在所有方案为一个特定功能运行之前和之后运行一次。

这可能吗?


答案 1

你使用黄瓜-jvm吗?我找到了一篇符合您要求的文章。

http://zsoltfabok.com/blog/2012/09/cucumber-jvm-hooks/

基本上,不要使用JUnit@BeforeClass,@AfterClass,因为他们不知道Cucumber Hook Tags。您可能希望 Init 和 Teardown 方法仅针对某些方案运行,对吗?


答案 2

如果您使用的是 junit 来运行测试。我们使用注释来创建单元测试类和单独的步骤类。标准@Before的东西在步骤类中,但@BeforeClass注释可以在主单元测试类中使用:

@RunWith(Cucumber.class)
@Cucumber.Options(format = {"json", "<the report file"},
    features = {"<the feature file>"},
    strict = false,
    glue = {"<package with steps classes"})
public class SomeTestIT {
    @BeforeClass
    public static void setUp(){
       ...
    }

    @AfterClass
    public static void tearDown(){
       ...
    }
}

推荐