Jest + puppeteer 自动测试

完整项目

https://github.com/OldDream/copy-to-clipbord-ultralight

为何需要做

做了一个 js小工具发布到 npm 上,每次更新完都要手动测试,效率很低,有时甚至会忘记,万一把带bug的版本发布上去,那就坑人了。因此考虑引入自动测试,搭配GitHub + Travis CI, 能省心不少。

选取我相对熟悉的 jest,但在这里和传统的js单测不同,因为这个工具涉及到dom操作,如果使用jest自带的模拟jsdom,意义不大,因此又引入了 puppeteer,跑一个无头浏览器,在其中进行测试,因此又引入 local-web-server,在本地开启http服务。

安装相关依赖

npm i jest jest-dev-server jest-puppeteer local-web-server puppeteer regenerator-runtime  --save-dev 

配置测试程序

配置 jest 环境,兼容async / await

在根目录创建以下这个文件(其实也可以不在根目录,和后面配置对应就行)

// setupTests.js
import 'regenerator-runtime/runtime';

package.json 中添加jest相关配置

// package.json
"jest": {
   
    "setupFilesAfterEnv": [
      "./setupTests.js"
    ]
  },
配置 local-web-server

scripts 中添加一行即可,使用 npm run server 可启动。

// package.json
"scripts": {
   
    "server": "ws -p 3000 --static.index demo.html",
  },
连接 local-web-server 与 jest

这里需要使用 jest-dev-server

在根目录中的 test 文件夹中创建

// globalSetup.js,用于启动本地服务
module.exports = async function globalSetup() {
   
  await setupDevServer
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值