jest-puppeteer使用 Jest & Puppeteer 運(yùn)行測試
jest-puppeteer 允許你使用 Jest & Puppeteer 運(yùn)行測試。
# for jest 22~23
npm install --save-dev [email protected] 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"
}
注意:確保從現(xiàn)有的 Jest 配置中刪除任何 testEnvironment 選項(xiàng),jest-puppeteer 需要管理這個(gè)選項(xiàng)。
在測試中使用 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,則需要通過命令行來傳遞環(huán)境:
"test": "react-scripts test --env=puppeteer",
或者在每個(gè)測試文件的頂部包含以下注釋
/**
* @jest-environment puppeteer
*/
大多數(shù)持續(xù)集成平臺(tái)都限制了可以使用的線程數(shù)。如果您有多個(gè)測試套件運(yùn)行 puppeteer,則測試可能會(huì)超時(shí),這是因?yàn)?jest 會(huì)嘗試并行運(yùn)行 puppeteer,而 CI 平臺(tái)無法及時(shí)處理所有并行作業(yè)。
在 CI 環(huán)境中運(yùn)行 puppeteer
對(duì)此的解決方法是在 CI 環(huán)境中連續(xù)運(yùn)行測試,用戶發(fā)現(xiàn),在此類環(huán)境中連續(xù)運(yùn)行測試可以實(shí)現(xiàn)高達(dá) 50%的性能提升。
可以通過 CLI 運(yùn)行來實(shí)現(xiàn):
jest --runInBand評(píng)論
圖片
表情
