❯ ⚛️The easiest way to run and debug test cases in electron with jest.
MIT License
Easiest way to run jest unit test cases in electron.
When we run unit test in Jest, it is actually running in the node environment, or virtual browser environment(e.g. JSDOM
) mocked by NodeJS. Sometimes we need a lot of Jest mocks for running code with no throw, such as: jest-canvas-mock, jest-storage-mock, @jest/fake-timers and so on. This is solved by Jest-Electron
.
Jest
.browser environment
.Multi-renderer
for running performance.Running and debug
is better then mock.$ npm i --save-dev jest-electron
{
"jest": {
+ "runner": "jest-electron/runner",
+ "testEnvironment": "jest-electron/environment"
}
}
Notice: update the runner
configure, not testRunner
.
Those will be helpful when run test case with
jest-electron
.
less
, css
code.svg
, png
, jpg
or other url file..Run test cases with
jest-electron
for continuous integration.
Running on macOS
will be ok.
- runs-on: ubuntu-latest
+ runs-on: macOS-latest
Update .travis.yml
with electron supported.
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
Depending on your executor, you might need to disable sandbox and shared memory usage:
export JEST_ELECTRON_STARTUP_ARGS='--disable-dev-shm-usage --no-sandbox'
npm run test
Keep the electron browser window for debugging, set process env DEBUG_MODE=1
.
DEBUG_MODE=1 jest
Run electron with arbitrary arguments.
JEST_ELECTRON_STARTUP_ARGS='--disable-dev-shm-usage'
Run electron with --no-sandbox
, set process env JEST_ELECTRON_STARTUP_ARGS='--no-sandbox'
.
JEST_ELECTRON_STARTUP_ARGS='--no-sandbox' jest
MIT@hustcc.