Cucumber 如何将cumber场景结果更改为@After钩子

Cucumber 如何将cumber场景结果更改为@After钩子,cucumber,cucumber-jvm,Cucumber,Cucumber Jvm,我想将已知问题的场景状态更改为After钩子。 比如: @After public void afterScenario(Scenario scenario) { if(scenario.isFailed() && scenario.getSourceTagNames().contains("knownIssue")){ //scenario.add(Result.SKIPPED) } } 其思想是测试,因为已知的bug会被跳过到测试报告中而失败 谢

我想将已知问题的场景状态更改为After钩子。 比如:

@After
public void afterScenario(Scenario scenario) {
   if(scenario.isFailed() && scenario.getSourceTagNames().contains("knownIssue")){
        //scenario.add(Result.SKIPPED)
   }
}
其思想是测试,因为已知的bug会被跳过到测试报告中而失败

谢谢,
Nayden

负责这方面的是您的测试执行引擎,也称为TestNG,JUnit。
所以问题是:如何以编程方式更改测试执行状态?这是一个解释。您可以通过Artcile中解释的方式或方法(重要的是,您必须使用测试执行引擎而不是Cucumber)连接到测试执行引擎。

您可以使用
@KnownIssue
注释场景,然后使用
--标记“not@KnownIssue”运行Cucumber
或其
@CucumberOptions
等价物。

支持您所寻找的内容。与qaf

  • 您可以通过在方法调用侦听器之后测试ng来实现它

  • 此外,您还可以在步骤级别添加元数据,并在的
    onFailure
    方法中对其进行处理,以根据步骤元数据修改异常以跳过异常。它会自动跳过调用该步骤但失败的测试


这是一个很好的解决方案,但它会阻止这些测试的执行。我想执行测试,只有在失败的情况下,才将该测试的状态更改为“不同于失败”。想法是将它们包含在测试报告中,但状态和颜色不同。您还可以在构建系统中配置第二个作业/步骤/内容,该作业/步骤/内容只运行已知问题的测试。无论如何,你都必须监视你的已知问题。如果你要监视你的已知问题。查看
--wip
标志。当存在任何传递问题时,它将使构建失败。