[bug] Retry + assert in async scenario does not work
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 45/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 停滞
- 技术栈
- javascript, node.js, playwright
- 领域
- testing-qa
调研方向
使用 CodeceptJS 3.0.5 或 3.0.6、Node.js 14.16.1 和 Playwright 重现 issue 中的两个 async 场景,并比较有 retry 和无 retry 的运行结果。从该重现中跟踪 async 场景的 retry 处理;完成的标准是意外的 assertion 在 retry 后仍然是测试失败,并且最终输出报告一个失败的测试。
由索引模型根据 Issue 内容生成。
描述
What are you trying to achieve?
Assertion like the doc example (but with an unexpected value in the assertion):
const assert = require('assert')
Scenario.only('test page title 1', async ({ I }) => {
I.amOnPage('https://www.google.com')
const title = await I.grabTitle()
assert.strictEqual(title, 'Bad value')
}).retry(2)
Scenario('test page title 2', { retry: 2 }, async ({ I }) => {
I.amOnPage('https://www.google.com')
const title = await I.grabTitle()
assert.strictEqual(title, 'Bad value')
})
What do you get instead?
With retry option, the test does not fail (ok at the end), it's unexpected:
> codeceptjs run --steps "--verbose"
CodeceptJS v3.0.5
Using test root "---"
Helpers: Playwright, Context, Network
Plugins: screenshotOnFail, retryFailedStep, tryTo
US checkout / LP0001 --
[1] Starting recording promises
› [Session] Starting singleton browser session
test page title 1
I am on page "https://www.google.com"
I grab title
[1] Error | AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
+ actual - expected
+ 'Google'
- 'Bad value'
[1] Starting <teardown> session
[1] <teardown> Stopping recording promises
› <screenshotOnFail> Test failed, try to save a screenshot
› Screenshot is saving to /----/codecept/output/test_page_title_1.failed.png
[2] Starting recording promises
› [Session] cleaning cookies and localStorage
OK | 0 passed // 2s
Without the retry, it's good, the test fails as expected:
> lv-front@1.0.2 codecept
> codeceptjs run --steps
CodeceptJS v3.0.5
Using test root "-----"
US checkout / LP0001 --
test page title 1
I am on page "https://www.google.com"
I grab title
✖ FAILED in 1059ms
-- FAILURES:
1) US checkout / LP0001
test page title 1:
Expected values to be strictly equal:
+ actual - expected
+ 'Google'
- 'Bad value'
+ expected - actual
-Google
+Bad value
AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
+ actual - expected
Artifacts:
- screenshot: /----/codecept/output/test_page_title_1.failed.png
FAIL | 0 passed, 1 failed // 1s
Details
- CodeceptJS version: 3.0.5 (but 3.0.6 tested too with the same bug)
- NodeJS Version: 14.16.1
- Operating System: macosX
- playwright
- 主要语言
- JavaScript
- 星标
- 4.2k
- 派生
- 756
- 平均合并
- 2 天 9 小时
- 30 天内合并 PR
- 16
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
codeceptjs/CodeceptJS 的其他 Issue
-
stale
难度 2/5 1-3 小时 新手友好度 72/100
codeceptjs/CodeceptJS#5420 · 1 条评论 ·
-
stale
难度 2/5 1-3 小时 新手友好度 76/100
codeceptjs/CodeceptJS#5358 · 1 条评论 ·
-
stale
难度 2/5 1-3 小时 新手友好度 78/100
codeceptjs/CodeceptJS#4958 · 10 条评论 · 2 个 reaction ·
-
stale
难度 1/5 1 小时以内 新手友好度 72/100
codeceptjs/CodeceptJS#4778 · 3 条评论 ·
-
stale
难度 4/5 3-5 天 新手友好度 38/100
codeceptjs/CodeceptJS#5618 · 1 条评论 ·
查看 codeceptjs/CodeceptJS 的全部 Issue
相似的 Issue
-
awaiting triage bug Causes friction Hop Gui P1 P2 Transforms
难度 2/5 1-3 小时 新手友好度 75/100
-
难度 2/5 1-3 小时 新手友好度 75/100
-
难度 2/5 1-3 小时 新手友好度 75/100
-
难度 2/5 1-3 小时 新手友好度 70/100
georgestephanis/p2026#40 ·
-
难度 2/5 1-3 小时 新手友好度 75/100
Margaret-Petersen/food-delivery-app-clone-react-native#1981 ·