jest-puppeteer使用 Jest & Puppeteer 运行测试

联合创作 · 2023-10-01 16:31

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
浏览 5
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报