V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
50vip
V2EX  ›  程序员

jest-electron:在 electron 环境中运行单测

  •  
  •   50vip · 2019-09-20 09:51:35 +08:00 · 1747 次点击
    这是一个创建于 1916 天前的主题,其中的信息可能已经有所发展或是发生改变。

    开源项目地址: https://github.com/hustcc/jest-electron

    技术解读: https://www.yuque.com/open/projects/jest-electron

    我们在开发前端模块,对它进行单测的时候,经常会遇到一些测试环境不存在的问题,比如我需要测试第一个图表库,那么需要测试环境具备 dom、canvas 环境。Jest 默认的 jsdom 只是 mock 浏览器 dom 环境,无法真正执行,预览,调试。

    jest-electron 就是用来在 electron 真实的浏览器环境中运行单测。

    使用方式如下:

    安装

    npm i --save-dev jest-electron
    

    配置 jest

    在 jest 配置中,增加:

    {
      "jest": {
    +    "runner": "jest-electron/runner",
    +    "testEnvironment": "jest-electron/environment"
      }
    }
    

    配置 ci

    在 travis.yml 文件中,修改:

    language: node_js
    node_js:
      - "8"
      - "9"
      - "10"
      - "11"
      - "12"
    + addons:
    +   apt:
    +     packages:
    +       - xvfb
    + install:
    +   - export DISPLAY=':99.0'
    +   - Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
    +   - npm install
    script:
      - npm run test
    

    主要是增加 electron 的运行环境。

    调试

    DEBUG_MODE=1 jest
    

    增加 DEBUG_MODE 的运行环境变量,就可以保持出 electron 的浏览器窗口,并且可以刷新重新运行测试。

    2 条回复    2019-09-20 11:25:30 +08:00
    rabbbit
        1
    rabbbit  
       2019-09-20 10:15:07 +08:00
    不支持 jest 23?
    50vip
        2
    50vip  
    OP
       2019-09-20 11:25:30 +08:00
    @rabbbit 不支持,jest runner 的代码在 24 之后,差别太大了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1844 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:20 · PVG 00:20 · LAX 08:20 · JFK 11:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.