jest-puppeteer使用 Jest & Puppeteer 运行测试
jest-puppeteer 允许你使用 Jest & Puppeteer 运行测试。
# for jest 22~23
npm install --save-dev jest-puppeteer@3.9.0 puppeteer jest
# for jest 24+
npm install --save-dev jest-puppeteer puppeteer jest
需要 Jest v22 及以上版本。
# TypeScript users should install following type packages
npm install --save-dev @types/puppeteer @types/jest-environment-puppeteer @types/expect-puppeteer
用法
更新 Jest 配置
{
"preset": "jest-puppeteer"
}
注意:确保从现有的 Jest 配置中删除任何 testEnvironment 选项,jest-puppeteer 需要管理这个选项。
在测试中使用 Puppeteer
import 'expect-puppeteer'
describe('Google', () => {
beforeAll(async () => {
await page.goto('https://google.com')
})
it('should display "google" text on page', async () => {
await expect(page).toMatch('google')
})
})
如果你正在使用 react-scripts,则需要通过命令行来传递环境:
"test": "react-scripts test --env=puppeteer",
或者在每个测试文件的顶部包含以下注释
/**
* @jest-environment puppeteer
*/
大多数持续集成平台都限制了可以使用的线程数。如果您有多个测试套件运行 puppeteer,则测试可能会超时,这是因为 jest 会尝试并行运行 puppeteer,而 CI 平台无法及时处理所有并行作业。
在 CI 环境中运行 puppeteer
对此的解决方法是在 CI 环境中连续运行测试,用户发现,在此类环境中连续运行测试可以实现高达 50%的性能提升。
可以通过 CLI 运行来实现:
jest --runInBand
评论