unit-jest plugin for vue-cli
npm install @vue/cli-plugin-unit-jest> unit-jest plugin for vue-cli
- vue-cli-service test:unit
Run unit tests with Jest. Default testMatch is which matches:
- Any files in tests/unit that end in .spec.(js|jsx|ts|tsx);
- Any js(x)/ts(x) files inside __tests__ directories.
Usage: vue-cli-service test:unit [options]
All Jest command line options are also supported.
Note that directly running jest will fail because the Babel preset requires hints to make your code work in Node.js, so you must run your tests with vue-cli-service test:unit.
If you want to debug your tests via the Node inspector, you can run the following:
``bashmacOS or linux
node --inspect-brk ./node_modules/.bin/vue-cli-service test:unit --runInBand
Configuration
Jest can be configured via
jest.config.js in your project root, or the jest field in package.json.Installing in an Already Created Project
`bash
vue add unit-jest
`Transform dependencies from
/node_modulesBy default, jest doesn't transform anything from
/node_modules.Since jest runs in node, we also don't have to transpile anything that uses modern ECMAScript features as Node >=8 already supports these features, so it's a sensible default. cli-plugin-jest also doesn't respect the
transpileDependencies option in vue.config.js for the same reason.However, we have (at least) three cases where we do need to transpile code from
/node_modules in jest:1. Usage of ES6
import/export statements, which have to be compiled to commonjs module.exports
2. Single File Components (.vue files) which have to be run through vue-jest
3. Typescript codeTo do this, we need to add an exception to the
transformIgnorePatterns option of jest. This is its default value:`javascript
transformIgnorePatterns: ['/node_modules/']
`We have to add exceptions to this pattern with a RegExp negative lookahead:
`javascript
transformIgnorePatterns: ['/node_modules/(?!name-of-lib-o-transform)']
`To exclude multiple libraries:
`javascript
transformIgnorePatterns: ['/node_modules/(?!lib-to-transform|other-lib)']
``