重现的步骤
git clone https://github.com/anikethsaha/docsify
git checkout
e2e-test-puppeteer'npm i
npm run test:e2e
-
检查测试是否有
sideBar.spec.js
它将失败运行 31 个测试中的 122 个测试
告诉我们您的环境:
- 木偶师版本:^2.0.0
- 平台/操作系统版本:视窗 10
- 网址(如果适用(:https://travis-ci.org/docsifyjs/docsify/jobs/631003978?utm_medium=notification&utm_source=github_status
- 节点.js版本:v10.15.3
哪些步骤将重现问题?npm run test:e2e
请包含重现该问题的代码。
- https://github.com/anikethsaha/docsify/blob/e2e-test-puppeteer/e2e/tests/sideBar.spec.js 2. 3.
预期结果是什么?它应该运行所有测试用例 122
相反,会发生什么?但相反,它只运行 31 个测试,浏览器在那之后关闭,然后剩下的 91 个测试没有运行
上下文
我正在使用live-server
来运行一个将为我的文件提供服务的服务器,并且它是在自定义开玩笑环境中完成的。 我有一个sideBar.spec.js
文件,它通过单击它们然后使用jest-image-snapshot
拍摄快照来测试所有侧边栏链接。 在此测试中,我使用page.click
方法单击每个可能的锚链接。 它未运行剩余的 91 个测试。我将超时增加到 300 秒,但它仍然在此之前停止。
我看到了一个奇怪的行为,即侧边栏带有一个切换按钮。因此,默认情况下,侧边栏是打开的。但是在退出关闭浏览器之前,IDK 但它正在切换侧边栏以关闭它,然后关闭浏览器。检查测试是否有sideBar.spec.js
您可以在此处找到测试的行为 https://travis-ci.org/docsifyjs/docsify/jobs/631003978?utm_medium=notification&utm_source=github_status
浏览器在执行所有测试之前没有关闭,事实并非如此。 在之前所有钩子添加参数browser = await puppeteer.launch({headless: false})
,当你看到发生了什么时,它总是更容易。
我用你的代码玩了一段时间,并在控制台中检查了你尝试点击的选择器是否真的存在,看起来它们不存在。 (您也可以在您提供的日志中清楚地看到它:Node is either not visible or not an HTMLElement
等(
例如:
const cdnIds = [
'latest-version',
'specific-version',
'compressed-file',
'other-cdn'
]
cdnIds.forEach(id => {
test('go to #cdn?id=' + id, async done => {
await page.click(`a.section-link[href='#/cdn?id=${id}']`)
const ss = await page.screenshot()
expectThres(ss)
done()
})
})
没有匹配的选择器,例如a.section-link[href='#/cdn?id=other-cdn']
或a.section-link[href^='#/cdn']
<- 第二个应该匹配每个 cdnIds 数组。我想你需要重写你的测试。祝你好运