首页 > 解决方案 > Cucumber java - 如何处理任何步骤定义的超时

问题描述

我正在使用旧版本的黄瓜 jvm(不是最新的5.x)。我正在使用以下方式来处理步骤定义中的超时。但目前,如果我的步骤定义执行时间超过 5 秒,它不会失败或停止执行。

任何建议如何处理黄瓜 java 的超时?

@Then(value = "^verify (\\d+) events sent$", timeout = 5000)

标签: cucumber-jvmcucumber-java

解决方案


发行说明

可以为步骤定义提供超时。不幸的是,语义很复杂。Cucumbers 实现将尝试中断长时间运行的步骤,但如果该步骤无限期卡住,则不会停止。

此外,如果 Cucumber 没有在给定的超时时间内终止,则不会认为该步骤失败。为了消除混乱和复杂性,我们从 Cucumber 中删除了超时。

考虑用这些库之一提供的功能替换此功能:

  • JUnit 5 断言.assertTimeout*
  • 等待时间
  • 番石榴限时器

推荐阅读