Build tests with Webpack and run them with Mocha in one command
- Source-map support
- Builds and runs in-memory
- Inherits Mocha CLI
- Supports Webpack 5 & Mocha 8
Support this project by
npm i -D mocha webpack instant-mocha
mocha are peer-dependencies so you can provide any version
instant-mocha --webpack-config <Webpack config path> [test paths/globs...]
Path to the Webpack config.
Watch mode. Re-compiles the Webpack build and re-run tests on file-changes.
Supports all options from Mocha CLI
For more info, run:
instant-mocha ---webpack-config webpack.config.js --require setup.js 'tests/*.spec.js'
- Load Webpack config from
- Load setup script from
setup.js. Note, this is not apart of the build and is loaded directly from Node.js
- Find and run tests that matches glob
How do I enable source-maps?
devtool: 'source-map' in your Webpack config.
How do I add a progress bar?
Add webpackbar to your Webpack config.
node_modules automatically externalized?
They can't be automatically externalized because it's possible some dependencies require bundling or pre-processing. For example, packages in ESM format or deep-dependencies that are stubbed for testing.
mocha-webpack or its fork mochapack?How is it different from
First of all, major thanks to mocha-webpack for the original implementation and serving the community.
This project was created from scratch because
mocha-webpack is no longer maintained and doesn't have Webpack 5 support (and neither does its fork, mochapack).
Some notable improvements include:
- Written in TypeScript whereas
- Doesn't re-implement another file-watching mechanism Relies on Webpack's watcher instead.
- Loosely coupled with Mocha and Webpack The API surface interacted with is very narrow so it works with most versions, (eg. Webpack 4 & 5).
- Correct exit codes Mocha and
mocha-webpackreturns the number of failed tests as the exit code. instant-mocha only uses exit code
1for any test failures as per Bash convention.
- Smaller size Reuses a lot from Webpack & Mocha so it's much lighter: vs
MIT © Hiroki Osame
Logo made by monkik