在黄瓜套件之前/之后如何运行代码?

时间:2018-07-05 13:40:34

标签: scala cucumber

我正在尝试找出如何在我所有的黄瓜测试运行之前和之后运行一些代码。

几天来,我一直在跟踪一个错误,在该错误中,我们的某些进程在服务器上创建了作业,并且没有正确清理它。容易遗漏,因此理想情况下,我不希望工程师必须为每个测试手动添加支票。

我希望有一种方法可以在运行任何测试之前放入一个钩子,以缓存服务器上存在多少个作业,然后在末尾添加一个钩子以确保该值不变。

我知道这并不是使用黄瓜的最佳方法,因为这更多的是系统测试类型,但是以这种方式进行操作将是使其适合现有基础架构的最佳方法。

2 个答案:

答案 0 :(得分:0)

如何使用标记的挂钩。

@Before("@jobCheck")
public void beforeScenario() {
  // actions
}

@After("@jobCheck")
public void afterScenario() {
  // actions
}

然后对于需要此检查的每个方案,在方案定义之前添加@jobCheck,如下所示。

Feature: Some feature description
  @jobCheck
  Scenario: It should process a sentence
    // The steps

更多有关JVM挂钩的信息:https://zsoltfabok.com/blog/2012/09/cucumber-jvm-hooks/

答案 1 :(得分:0)

在运行文件中使用@BeforeClass@AfterClass注释。

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

    @AfterClass
    public static void getJobNumbersOnServerAfterCompletion() {
        //Implement logic
    }
}