Simplify testing of front-end libraries using browserify and mocha
Features:
- No config files, just run your tests in terminal with phantomjs or start watch server to test and debug in actual browser;
- It builds on top of testem for solid integration with different browsers and platforms;
- It uses watchify and errorify for better development experience;
Install with npm and make sure phantomjs is installed (phantomjs -v
):
npm install --global browserify-test
Pass test files to browserify-test
and enjoy browserified mocha tests:
browserify-test --help
Usage: browserify-test [options] [./test/*.js ...]
Options:
-h, --help output usage information
-V, --version output the version number
-w, --watch run watch server on http://localhost:7357
-t, --transform <t1,t2,..> add browserify transforms
-p, --plugins <p1,p2,..> add browserify plugins
-b, --browserifyOptions <jsonStringifiedObj> add browserifyOptions
--testem, --testemOptions <jsonStringifiedObj> add testemOptions
browserify-test # run tests for ./test/*.js
browserify-test --watch # start watch server on localhost:7537
browserify-test ./path/to/test.js ./path/to/another-test.js # pass test files as arguments
browserify-test ./lib/**/test.js # use globs
browserify-test --transform [ babelify --presets env ] ./path/to/es6-test.js # use transforms
Add browserify-test
to your development dependencies:
npm install --save-dev browserify-test
And use npm scripts
to run your tests in terminal with npm test
or start development watch server with npm start
.
{
"scripts": {
"test": "browserify-test ./test/index.js",
"start": "browserify-test --watch ./test/index.js"
},
"devDependencies": {
"browserify-test": "^3.1.0"
}
}
npm hint: you don't need to type ./node_modules/.bin/browserify-test
to refer on local copy of browserify-test
,
npm does it automatically.
import run from 'browserify-test'
run({
watch: false,
transform: ['brsf', ['babelify', { presets: 'env' }]],
files: ['./test/file1.js', './test/file2.js'],
}) // Returns the underlying `browserify` instance
files
(orentries
) - Array - a list of files for browserifywatch
- Boolean - enable watch servertransform
(ortransforms
) - Array - a list of browserify transform modulesplugins
- Array - a list of browserify transform modulesbrowserifyOptions
- Object - options to pass asbrowserify
optionstestemOptions
- Object - options to pass astestem
options. Note that besides config-level options, the CLI-level options are also available, as are Testem's hooks which can be used to report on testem phases); these can be expressed as strings (to execute shell commands) or as callbacks. Callbacks will be passed the Testem config object, any data object for the hook (only currently used for the undocumentedon_change
hook, providing afile
path property), and a callback which should be invoked with a falsy argument (or no arguments) to indicate a passed Testem test or invoked with a truthy argument (such as an error object) to report a failed Testem test.finalizer
- Function called toward end of tests; as in testem, this finalizer will be passed an exit code (set to 0 if normal and 1 if erring) and any (Bluebird) error object. If you wish to execute code prior to the end of all tests, see the docs above on hooks intestemOptions
.