Unit testing tool for Vue.js components. This tool allows you to easily test your Vue components using mocha and @vue/test-utils. Additionally, it provides code-coverage reporting via nyc/istanbul for both Vue components and vanilla js. It is based on the following documents:
npm install --save-dev @rei/vunit @vue/test-utils
npx vunit --spec=<glob-to-specs> [--watch]
npx vunit --spec=<glob-to-specs> --coverage [--watch]
Report is generated at `./coverage`
- Refer to the @vue/test-utils documentation for examples and API.
- Create your spec files via mocha syntax.
- Chai's expect is made globally available in your spec files for assertions.
Add test
script to your package.json
:
{
...
"scripts": {
"test": "vunit --spec=<glob-to-specs>"
},
...
}
The following options are available to the tool:
spec: {String} The path glob to your Vue unit tests (required)
webpack-config: {String} The path to your webpack.config.js (optional)
watch: {String} Comma-separated list of directories to watch for changes, e.g.
--watch=src,test (optional).
coverage: {None} Flag indicating whether or not to run coverage. Report is generated at `./coverage-vue`
require: {None} Path to include a module (like a setup script) before loading tests (optional)
reporter: {String} The mocha reporter (default is spec)
If you need to modify any of the NYC test coverage configuration options
that are provided by default, you can create a local .nycrc
config file and configure as needed.
Start by just copying the default .nycrc file to your local directory and modify as needed.
To use package via programmatic API, just require
the module and call the exposed run
command
with above options passed in as an object:
const vunit = require('vunit');
vunit.run({
spec: '/glob/to/specs',
...
});
See the Vue Test Utils Migration page regarding API changes.