annotations - Cucumber jvm - 在 After hook 中指定要忽略的多个标签

标签 annotations tags hook cucumber-jvm

我正在使用 cucumber jvm 编写一些测试对于某些功能需要一些不同的拆卸行为,大多数场景需要共同拆卸。

到目前为止,我已经能够成功地告诉 Cucumber 对我的大多数场景运行常见的拆卸(使用“@After”注释)。另外,我指定了一个标签来忽略一小部分场景,这样我就可以在这些情况下使用特定的拆解。这是一个仅显示注释的浓缩示例:

@After("~@specificTearDown")
public void tearDown(){
  // some tear down code
}

@After("@specificTearDown")
public void specialTearDown(){
  // some code specific to a scenario
}

我使用“~”符号来指定要忽略的标记场景/功能。

这很有效,我得到了在大多数情况下调用的第一个拆卸方法,第二个方法只在标记的情况下运行。

我的问题是,我现在需要为另一种情况指定第二种特定的拆卸方法,但 Cucumber 似乎不喜欢忽略超过 1 个标签。

我尝试了以下但没有成功...

@After("~@specificTearDown, ~@anotherSpecificTearDown")
public void tearDown(){
  // some tear down code
}

@After("@specificTearDown")
public void specialTearDown(){
  // some code specific to a scenario
}

@After("@anotherSpecificTearDown")
public void anotherSpecificTearDown(){
  // some code specific to a scenario
}

这会导致 Cucumber 只对所有场景运行第一个拆卸方法,这会导致我的测试发生冲突,因为其他拆卸方法也会针对标记的场景运行。

关于我如何做到这一点的任何想法,我曾想过只使用一个标记来指定第一个拆卸并用它标记我不想用该代码拆卸的所有功能,但这似乎必须对我这样做是错误的。

最佳答案

我认为这应该可行:

@After({"~@specificTearDown", "~@anotherSpecificTearDown"})
public void tearDown(){
  // some tear down code
}

可以试试吗?希望对你有帮助

关于annotations - Cucumber jvm - 在 After hook 中指定要忽略的多个标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33876364/

相关文章:

iOS mapkit - 如何在图钉悬停时显示文本

java - GreenRobot的eventbus看不到注解, "no public methods"

javascript - 浏览器是否广泛支持属性中的数字引号?

java - 如何使这个自定义标签按预期工作?

c++ - 使用 C++ Hook QT 应用程序以捕获应用程序的文本名称

Groovy AST - 使用枚举添加类注释

annotations - 使用 VLC 注释视频

java - 使用 JSoup 连接 HTML 元素

c++ - 如何在单独的线程中调用 QDialog::exec 以避免向主线程发出任何信号(包括重绘)?

c# - UnhookWindowsHookEx 函数,如果在低级钩子(Hook)应用程序中遗漏了怎么办?