如何为所有Cucumber步骤添加默认超时?

时间:2018-07-27 07:28:46

标签: cucumber cucumber-jvm cucumber-java cucumber-junit

我正在使用Selenium-Cucumber-Java框架进行自动化。 我需要以某种方式限制我的方案的运行时长,以使任何方案最多需要30分钟,如果花费的时间超过该时间,则该方案将失败。

我在SO中找到了这个答案,这有助于使步骤超时。 Cucumber Stopping Execution after Time in Steps

但是我不想更改所有现有步骤以包括此超时。 有没有办法为我的所有步骤提供默认超时? 还是有办法在方案级别配置超时?

2 个答案:

答案 0 :(得分:1)

您正在尝试结合两种不同的东西。 30分钟后终止测试,如果测试持续时间为30分钟或更长时间,则测试失败。前者是不可能实现的,后者很容易使用@Before@After钩子来实现。

您在前钩中设置开始时间,并在后钩中检查总持续时间。如果花费太长时间,则引发异常。

答案 1 :(得分:1)

我在E2EWorld中添加了此内容。

import { setDefaultTimeout } from 'cucumber';


const DEFAULT_TIMEOUT = 10000;


setDefaultTimeout(DEFAULT_TIMEOUT);