为什么 Jest 覆盖率报告在更改 testMatch 正则表达式时会中断?
Why does Jest coverage report break when changing the testMatch regex?
使用以下配置,覆盖率报告在更改 testMatch
cli 选项时中断。我已经尝试设置 collectCoverageFrom './src/*.js'
选项,但这也没有解决问题。
./src/sum.js
function sum(a, b) {
return a + b;
}
module.exports = sum;
./test/sum.js
const sum = require('../src/sum');
test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});
package.json
"devDependencies": {
"@babel/core": "^7.1.2",
"@babel/plugin-proposal-decorators": "^7.1.2",
"@babel/preset-env": "^7.1.0",
"@babel/register": "^7.0.0",
"babel-core": "7.0.0-bridge.0",
"babel-jest": "^23.6.0",
"jest": "^23.6.0"
},
"scripts": {
"test": "jest ./test/*.js --testMatch '**/*.js' --coverage --coverageDirectory './test-coverage'"
}
从npm run test
输出
PASS test/sum.js
----------|----------|----------|----------|----------|-------------------|
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s |
----------|----------|----------|----------|----------|-------------------|
All files | Unknown | Unknown | Unknown | Unknown | |
----------|----------|----------|----------|----------|-------------------|
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 1.125s
Ran all test suites matching /.\/test\/sum.js/i.
设置testRegex
参数:
jest --testRegex='./test/.*\.js$' --coverage --coverageDirectory './test-coverage'
现在输出如下所示:
PASS test/sum.js
✓ adds 1 + 2 to equal 3 (3ms)
----------|----------|----------|----------|----------|-------------------|
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s |
----------|----------|----------|----------|----------|-------------------|
All files | 100 | 100 | 100 | 100 | |
sum.js | 100 | 100 | 100 | 100 | |
----------|----------|----------|----------|----------|-------------------|
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 0.769s, estimated 1s
Ran all test suites.
使用以下配置,覆盖率报告在更改 testMatch
cli 选项时中断。我已经尝试设置 collectCoverageFrom './src/*.js'
选项,但这也没有解决问题。
./src/sum.js
function sum(a, b) {
return a + b;
}
module.exports = sum;
./test/sum.js
const sum = require('../src/sum');
test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});
package.json
"devDependencies": {
"@babel/core": "^7.1.2",
"@babel/plugin-proposal-decorators": "^7.1.2",
"@babel/preset-env": "^7.1.0",
"@babel/register": "^7.0.0",
"babel-core": "7.0.0-bridge.0",
"babel-jest": "^23.6.0",
"jest": "^23.6.0"
},
"scripts": {
"test": "jest ./test/*.js --testMatch '**/*.js' --coverage --coverageDirectory './test-coverage'"
}
从npm run test
PASS test/sum.js
----------|----------|----------|----------|----------|-------------------|
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s |
----------|----------|----------|----------|----------|-------------------|
All files | Unknown | Unknown | Unknown | Unknown | |
----------|----------|----------|----------|----------|-------------------|
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 1.125s
Ran all test suites matching /.\/test\/sum.js/i.
设置testRegex
参数:
jest --testRegex='./test/.*\.js$' --coverage --coverageDirectory './test-coverage'
现在输出如下所示:
PASS test/sum.js
✓ adds 1 + 2 to equal 3 (3ms)
----------|----------|----------|----------|----------|-------------------|
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s |
----------|----------|----------|----------|----------|-------------------|
All files | 100 | 100 | 100 | 100 | |
sum.js | 100 | 100 | 100 | 100 | |
----------|----------|----------|----------|----------|-------------------|
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 0.769s, estimated 1s
Ran all test suites.