Scala 如何在Cumber suite之前/之后运行代码?

Scala 如何在Cumber suite之前/之后运行代码?,scala,cucumber,Scala,Cucumber,我正试图弄清楚如何在所有cucumber测试运行之前和之后运行一些代码 几天来我一直在追踪一个bug,我们的一些进程在服务器上创建了作业,但没有正确地清理它。这很容易错过,所以理想情况下,我不希望工程师必须手动在每个测试中添加检查 我希望能有一种方法,在运行任何测试以缓存服务器上存在多少个作业之前,先插入一个钩子,然后在最后插入一个钩子以确保值没有更改 我知道这并不是使用cucumber的最佳方式,因为这更像是一种系统测试类型的工作,但这样做将是将其融入现有基础设施的最佳方式。使用标记挂钩如何

我正试图弄清楚如何在所有cucumber测试运行之前和之后运行一些代码

几天来我一直在追踪一个bug,我们的一些进程在服务器上创建了作业,但没有正确地清理它。这很容易错过,所以理想情况下,我不希望工程师必须手动在每个测试中添加检查

我希望能有一种方法,在运行任何测试以缓存服务器上存在多少个作业之前,先插入一个钩子,然后在最后插入一个钩子以确保值没有更改


我知道这并不是使用cucumber的最佳方式,因为这更像是一种系统测试类型的工作,但这样做将是将其融入现有基础设施的最佳方式。

使用标记挂钩如何

@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挂钩的更多信息,请参见此处:

在运行文件中使用
@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
    }
}
@RunWith(Cucumber.class)
@黄瓜,选择(
格式={“json”,“”},
功能={”“},
严格=错误,
胶水={'})
公共类TestRunFile{
@课前
public static void getJobNumbersOnServerBeforeStarting(){
//实现逻辑
}
@下课
public static void getJobNumbersOnServerAfterCompletion(){
//实现逻辑
}
}

您的测试是否针对测试服务器运行?如果是这样,为什么创造就业机会会成为问题呢。就业机会是如何创造的?