codeceptjs / codeceptjs/CodeceptJS

Test timeout doesn't work with BDD scenarios

未關閉
#3,055 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
bug critical
主要語言
JavaScript
星號
4.2k
分支
757
平均合併
2 天 9 小時
30 天內合併 PR
16

描述

#### What are you trying to achieve?
I would like to define a test timeout in order to prevent being stuck during the execution - native applications & websites can be down / blocked during the execution and I want to skip a test when it reaches a limit.

So I tried (without success) to use the 2 following features available in codeceptjs:
1. Timeout setting in the configuration file: https://codecept.io/configuration/#configuration
```
exports.config = {
...
timeout: 10000,
...
}
```
2. Dynamic timeout override by using advanced options: https://codecept.io/advanced/#test-options
```
Before((test) => {
test.timeout(10000);
});
```

#### What do you get instead?
- **Approach 1 - Timeout setting**: has no effect at all
- **Approach 2 - Dynamic timeout override**: test execution continues until the end and fails with timeout message if execution exceeds the threshold (see screenshot)

_Example: timeout set to 10s, execution ran in 36s before displaying the error message_

![image](https://user-images.githubusercontent.com/87313129/135439603-125642e1-2564-4b77-ad6c-c49ddac4032b.png)

### Details

* CodeceptJS version: 3.1.2
* NodeJS Version: 16.4.2
* Operating System: Mac OS
* Configuration file:

```js
exports.config = {
output: './output',
timeout: 10000,
helpers: {
Playwright: {
url: 'http://localhost',
show: true,
browser: 'chromium',
waitForNavigation: 'domcontentloaded'
},
ChaiWrapper: {
require: "codeceptjs-chai"
}
},
include: {},
mocha: {},
bootstrap: null,
teardown: null,
hooks: [],
gherkin: {
features: './features/*.feature',
steps: './step_definitions/*.js'
},
plugins: {
screenshotOnFail: {
enabled: true
},
pauseOnFail: {},
retryFailedStep: {
enabled: true
},
tryTo: {
enabled: true
}
},
tests: './*_test.js',
name: 'cjs-training'
}
```

貢獻指南

開啟貢獻指南

研究方向

使用所示的 CodeceptJS 設定、Playwright helper 和 BDD 情境重現問題,然後追蹤全域逾時與 Before hook 逾時的套用方式。確認兩種方法的行為,並新增一個回歸測試,顯示情境會在設定的限制處停止。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
javascript, node.js, playwright
領域
testing
Issue 類型
缺陷
難度
3/5
預估耗時
1-2 天
活躍度
停滯
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。