Skip to content
🌎 Seamless node and browser unit testing with code coverage
Branch: master
Clone or download
Latest commit 62136f2 Jan 4, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
docs Update headless docs Dec 8, 2017
fixtures Ensure non-zero status codes and logs for unhandled promise rejections Dec 8, 2017
lib
test
.eslintignore
.eslintrc.js Replace electron with headless chrome Dec 7, 2017
.gitignore Replace electron with headless chrome Dec 7, 2017
.travis.yml
LICENSE
README.md Update README.md Dec 7, 2017
index.js Replace electron with headless chrome Dec 7, 2017
package.json
yarn.lock

README.md

unitest logo

build status dependencies status npm version

Seamless node and browser unit testing with code coverage

Features
  • Unified node and browser tests with merged TAP output, code coverage reports, and exit status codes.
  • Headless Chrome-powered browser testing for a fast, modern browser testing environment.
  • Bundler-agnostic usage. Use browserify, webpack, or something else.
  • Designed to be used with Babel-powered coverage instrumentation for fast, efficient testing with code coverage.
  • Works seamlessly with nyc, the official Istanbul CLI.

Usage

Usage: unitest {OPTIONS}

Options:

    --version, -v  Print version and exit

       --help, -h  Print usage information

       --node, -n  Path to node test entry file

    --browser, -c  Path to browser test entry file

Getting Started

Run node and browser tests

  1. Transpile source code with Babel (optional)
  2. Bundle browser code
  3. Run unitest, specifying test entry files
babel src -d build
browserify build/test/browser.js > build/test/browser-bundle.js
unitest --browser=build/test/browser-bundle.js --node=build/test/node.js

Run node and browser tests with coverage report

Unitest works with nyc, the Istanbul CLI. To run unitest with coverage, add the Istanbul instrumentation Babel plugin then run unitest with nyc on the instrumented code:

babel src -d build --plugins=istanbul
browserify build/test/browser.js > build/test/browser-bundle.js
nyc --report=html unitest --browser=build/test/browser-bundle.js --node=build/test/node.js

Merged test output

The separate TAP and coverage output along with exit code for your node and browser tests will be merged seamlessly.

Debugging

Debug node tests

No magic here, just use plain node.

node --inspect-brk build/test/node.js

Debug browser tests

Coming soon: ability to launch Chrome with a DevTools window open, or let you connect to the script URL manually.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.