首页 > 解决方案 > 添加 @after 钩子会影响包中的所有测试

问题描述

我想为包中的一项测试添加@After 钩子。当我从这个包(不包含@after 定义)运行另一个测试时,@after 钩子从第一个测试运行。这是正确的行为吗?如何仅为那一项测试添加 @after 挂钩?

标签: javatestingcucumber

解决方案


您需要使用标记的钩子,以便您可以选择运行代码的场景,而不是所有场景。如果您共享您的代码,则更容易准确理解您出错的地方,但这是我最好的猜测。

@After("@onlyThisTest")
  public void doSomethingOnlyAfterTestsWithThatTag(){
}

有关详细信息,请参阅标记的 hooked 文档


推荐阅读