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

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秒的延

  • 我在功能文件中编写了一系列场景,其中包含断言。如果第一个场景的断言失败,Specflow将跳过它之后的所有场景。我希望我所有的场景都能继续运行,即使其中一个像NUnit一样失败。我使用SpecRun作为测试提供商,我在SpecFlow网站上找不到任何对我有帮助的东西。可能是我的应用程序中缺少了什么。配置文件? 以下是我的App.config文件: