如何在玩笑中获取未覆盖的代码部分
How to get the uncovered parts of code in jest
我写了一个简单的reducer :
const simpleCounterReducer = (state = 0, action) => {
switch (action.type) {
case 'INCREMENT_COUNT':
return state + 1;
case 'DECREMENT_COUNT':
return state - 1;
default:
return state;
}
};
export default simpleCounterReducer;
然后进行一些简单的测试以涵盖所有可能的选项。
import simpleCounterReducer from '../src/reducers/simple-counter.js';
describe('counter works and', () => {
test('can handle increments', () => {
expect(
simpleCounterReducer(0, {
type: 'INCREMENT_COUNT'
})
).toBe(1);
});
test('can handle decrements', () => {
expect(
simpleCounterReducer(1, {
type: 'DECREMENT_COUNT'
})
).toBe(0);
});
test('can handle invalid actions', () => {
expect(
simpleCounterReducer(4, {
type: 'SOME_RANDOM_ACTION'
})
).toBe(4);
});
});
然后我运行这个命令:npx jest --colors --coverage
但是即使我已经覆盖了代码的所有部分,我还是得到了一条未覆盖的代码行。开玩笑有问题还是我错过了什么。有没有办法开玩笑地找出未涵盖的代码部分。
Image for jest test coverage output
如果您想查看未覆盖的行,您可以在浏览器中打开生成的报告。
默认情况下,报告在此处 ./coverage/lcov-report/index.html
。
但是你在控制台中也看到了未覆盖行的行号(不是未覆盖的行数而是行号,你的情况是第一行)。
如果需要,还有一些覆盖范围的配置:https://jestjs.io/docs/en/configuration#collectcoverage-boolean
旁注,它在幕后使用伊斯坦布尔:https://github.com/gotwarlost/istanbul
我写了一个简单的reducer :
const simpleCounterReducer = (state = 0, action) => {
switch (action.type) {
case 'INCREMENT_COUNT':
return state + 1;
case 'DECREMENT_COUNT':
return state - 1;
default:
return state;
}
};
export default simpleCounterReducer;
然后进行一些简单的测试以涵盖所有可能的选项。
import simpleCounterReducer from '../src/reducers/simple-counter.js';
describe('counter works and', () => {
test('can handle increments', () => {
expect(
simpleCounterReducer(0, {
type: 'INCREMENT_COUNT'
})
).toBe(1);
});
test('can handle decrements', () => {
expect(
simpleCounterReducer(1, {
type: 'DECREMENT_COUNT'
})
).toBe(0);
});
test('can handle invalid actions', () => {
expect(
simpleCounterReducer(4, {
type: 'SOME_RANDOM_ACTION'
})
).toBe(4);
});
});
然后我运行这个命令:npx jest --colors --coverage
但是即使我已经覆盖了代码的所有部分,我还是得到了一条未覆盖的代码行。开玩笑有问题还是我错过了什么。有没有办法开玩笑地找出未涵盖的代码部分。
Image for jest test coverage output
如果您想查看未覆盖的行,您可以在浏览器中打开生成的报告。
默认情况下,报告在此处 ./coverage/lcov-report/index.html
。
但是你在控制台中也看到了未覆盖行的行号(不是未覆盖的行数而是行号,你的情况是第一行)。
如果需要,还有一些覆盖范围的配置:https://jestjs.io/docs/en/configuration#collectcoverage-boolean
旁注,它在幕后使用伊斯坦布尔:https://github.com/gotwarlost/istanbul