当前位置: 首页 > 知识库问答 >
问题:

Cucumber-jvm在场景通过或失败时挂钩

宓昂雄
2023-03-14
@AfterScenario(uponOutcome=AfterScenario.Outcome.SUCCESS)
public void afterSuccessfulScenario() {
// Some code to execute...
}

@AfterScenario(uponOutcome=AfterScenario.Outcome.FAILURE)
public void afterFailedScenario() {
// Some code to execute...
}

我不确定如何在cucumber-JVM中实现它。有线索吗?

共有1个答案

东郭和光
2023-03-14

您可以使用cucumber-JVM钩子来实现它。如果钩子接收到场景作为参数,则可以知道它是否失败。

示例:

@After
public void afterScenario(Scenario scenario) {
  if (scenario.isFailed()) {
     // Some code to execute...
  }
  if(scenario.isPassed()) {
     // Some code to execute...
  }
}

注意@after的导入:

import cucumber.api.java.After;
 类似资料:
  • 我想自动重试失败的测试,以提高测试的可靠性,类似于 Junit 中的 TestRule,我希望能够灵活地在测试周围插入逻辑,以便实现重试循环: > 我正在使用Cucumber-JVM,需要一个涉及Java或Gradle的解决方案 我通过Gradle javaexec尝试了以下cucumber选项: //--format pretty--format rerun--out tmp/rerun.txt

  • 我有一个示例项目,其中使用了Maven、TestNg和Cucumber。我使用testrunner类运行测试。 我创建了一个包含两个方案的功能文件,但两个方案都失败了。我有两个具有不同功能文件的测试运行者类 - 1。特征文件指向所有功能,2。指向仅失败的方案。 当我尝试重新运行场景时,它只运行一个场景。 1- 请告知如何执行所有失败的方案。

  • cucumber场景使用JUnit运行。 我有一个用例,需要根据Jira票据的状态跳过特定的Cumber场景。然后,我需要将该场景标记为在html报告中传递。 我可以使用PendingException()或AssumptionViolatedException()轻松跳过场景,两者都可以正常跳过场景执行并将步骤标记为跳过。但是场景本身将被标记为失败,我希望它被通过。 无论如何,我可以做到这一点?

  • 我已经在Cucumber中有了我的特性文件,并且正在使用Given,When,Then语法(Gherkin)在其中编写我的场景,并在步骤定义文件中有相应的步骤。我有一个场景,我正在检查特定数据集是否存在(这是我给定步骤的一部分),然后继续执行“然后”、“和”等的下一步,但如果不存在,则应跳过其余步骤并退出步骤定义文件,而不会使场景失败。有人能告诉我cucumber是否支持这一点吗?如果是,最好的方

  • 当我只接受请求的一个子集(~100)时,模拟工作得更好(用户初始化更快,可以容纳170多个用户,等等)。 我的问题是,首先,正如我所理解的,JMeter加载场景树,每个线程都播放它,不应该有任何重复,那么到底是什么导致了如此大的加载?其次,我能做些什么呢? PS:当我查看系统瓶颈时,我注意到长文件的CPU和内存值都很高,而短文件的CPU和内存值都很低。有人能解释吗? PS2:请求之间有大约7秒的延

  • 我在cucumber和Gradle和TestNG一起用硒。同一场景对多个参数(示例)运行。我面临的问题是,对于第一次断言成功,浏览器(驱动程序)关闭。但是对于随后的断言失败,浏览器(驱动程序)不会关闭,而是为下一组值启动一个新的浏览器实例。 请建议如何克服这个问题。我有没有办法在这里使用@beforeTest@afterTest?