跳到主要内容
版本:26.x.

木质仪器をを用する

グローバルセットアップ/ティアダウンasyncテスト环境APIをを使うこと,jestは傀儡を简にに使用できでき。

页面。$ eval页面。$$评估またはPAGE.Evaluate.をテストで使使用しいるいる场合书,jestのスコープ外部でする关键词実されいるためため使しテストがいつの生成はませんカバレッジ策生成はませ。问题#7962を参照してください。

Jest-Puppeteerプリセットプリセット使用する

jest木偶は,木质仪器を使ってテストをするために必要な,すべての设定を提供し。

  1. 首先,安装jest-puppeteer.
Yarn Add --dev Jest-Puppeteer
  1. テストテスト书架ます
{
“预设” “jest-puppeteer”
}
  1. グローバルセットアップで,木质仪器ををして,websocketのエンドポイントをする
描述 '谷歌' => {
Beforeall. 异步 => {
等待 'https://google.com' ;
} ;
'应该标题为“谷歌” 异步 => {
等待 预计 标题 解决 匹配 '谷歌' ;
} ;
} ;

瞳孔ののはは必要するありロードするするははありありませするありありはははは浏览器クラスは自动的に公开打开さます。

详しくはドキュメントを参照してください。

jest-puppeteerプリセットなしのカスタム例

スクラッチで木质仪器をを作品することできます。

  1. グローバルティアダウンで,木偶ををする
  2. それぞれのテスト环境から木盆に接続する
  3. グローバルティアダウンで,木偶ををする

globalsetupスクリプトの例を以下に挙げます。

// setup.js.
const FS. = 要求 'FS' ;
const OS. = 要求 'os' ;
const 小路 = 要求 '小路' ;
const mkdirp. = 要求 'mkdirp' ;
const 傀儡 = 要求 '木偶尔' ;
const 谜语 = 小路 加入 OS. TMPDIR. 'jest_puppeteer_global_setup' ;
模块 出口 = 异步 功能 {
const 浏览器 = 等待 傀儡 发射 ;
//存储浏览器实例,以便我们稍后拆除它
//这个全局仅在拆解中可用,但在Testenvironments中
全球的 __browser_global__ = 浏览器 ;
//使用文件系统公开WSENDPOINT for testenvironments
mkdirp. 同步 谜语 ;
FS. writefilesync. 小路 加入 谜语 'wsendpoint' 浏览器 Wsendpoint. ;
} ;

そして,木质仪器用のカスタムテスト环境も作战。

// puppeteer_environment.js.
const FS. = 要求 'FS' ;
const OS. = 要求 'os' ;
const 小路 = 要求 '小路' ;
const 傀儡 = 要求 '木偶尔' ;
const 点亮 = 要求 'jest-envionion-node' ;
const 谜语 = 小路 加入 OS. TMPDIR. 'jest_puppeteer_global_setup' ;
班级 傀儡社航 延伸 点亮 {
构造函数 配置 {
极好的 配置 ;
}
异步 设置 {
等待 极好的 设置 ;
//获取wsendpoint
const Wsendpoint. = FS. readfilesync. 小路 加入 谜语 'wsendpoint' 'utf8' ;
如果 !! Wsendpoint. {
新的 错误 'vsendpoint找不到' ;
}
//连接到木偶
全球的 __browser__ = 等待 傀儡 连接 {
browserwsendpoint. Wsendpoint.
} ;
}
异步 拆除 {
等待 极好的 拆除 ;
}
runscript. 脚本 {
返回 极好的 runscript. 脚本 ;
}
}
模块 出口 = 傀儡社航 ;

最后,我们可以关闭木偶实例并清理文件

// teardown.js.
const OS. = 要求 'os' ;
const 小路 = 要求 '小路' ;
const Rimraf. = 要求 'Rimraf' ;
const 谜语 = 小路 加入 OS. TMPDIR. 'jest_puppeteer_global_setup' ;
模块 出口 = 异步 功能 {
//关闭浏览器实例
等待 全球的 __browser_global__ 关闭 ;
//清理wsendpoint文件
Rimraf. 同步 谜语 ;
} ;

すべての设备がが终われ,次のようにテストが书架。

// test.js.
const 超时 = 5000 ;
描述
'/ (主页)'
=> {
;
Beforeall. 异步 => {
= 等待 全球的 __browser__ 新页面 ;
等待 'https://google.com' ;
} 超时 ;
'应该没有错误 异步 => {
const 文本 = 等待 评估 => 文档 身体 TextContent. ;
预计 文本 包含装有 '谷歌' ;
} ;
}
超时
;

最后に,これらのファイルを読み込むようにjest.config.js.を设定します。(jest-puppeteer.プリセットは,水浒下でこのなこと行ってます

模块 出口 = {
globalsetup. './setup.js'
GlobalTeardown. './teardown.js'
测试环境 './puppeteer_environment.js'
} ;

完全な动作例はこちら。