Reactjs 如何获得react代码的完整测试覆盖率

Reactjs 如何获得react代码的完整测试覆盖率,reactjs,testing,jestjs,enzyme,Reactjs,Testing,Jestjs,Enzyme,我是单元测试新手,有一个功能组件,我已经为它编写了一些测试用例,但无法用jest和Ezyme获得完整的测试覆盖率。除了功能覆盖之外,我还测试了所有功能 npm测试--coverage。我在代码片段中添加了testcoverage命令和testcoverage html const TargetAudience = ({ searchResults }) => ( <React.Fragment> <div className="target-aud

我是单元测试新手,有一个功能组件,我已经为它编写了一些测试用例,但无法用jest和Ezyme获得完整的测试覆盖率。除了功能覆盖之外,我还测试了所有功能
npm测试--coverage
。我在代码片段中添加了testcoverage命令和testcoverage html

const TargetAudience = ({ searchResults }) => (
    <React.Fragment>
        <div className="target-audience-header">Target Audience</div>
    {searchResults.length > 0 ?
      <Table columns={columns} dataSource={data} />
      :
      null
    }

    </React.Fragment>
);

src/容器/受众/目标受众的代码覆盖率报告
.覆盖范围摘要.分拣机{
背景图像:url(..\..\..\..\sort arrow sprite.png);
}
src/容器/受众/目标受众
80% 
声明
4/5
100% 
分支机构
2/2
50% 
功能
1/2
80% 
线
4/5
文件
声明
分支机构
功能
线
80%
4/5
100%
2/2
50%
1/2
80%
4/5
代码覆盖率
生成时间:2019年8月24日星期六09:12:32 GMT+0530(印度标准时间)
window.onload=函数(){
if(预打印类型=='函数'){
预打印();
}
};
@RenJith-

对不起,这是来回的。我正在查找的Instabul结果如下图所示;但是,您应该有一些额外的符号,指示导致您所经历的结果的原因:

我觉得,一旦你能够直观地看到结果,你就可以找出覆盖率缺失的地方。此外,我不希望获得100%的覆盖率,而是确保您能够准确地测试功能。可以获得100%,但没有良好的测试:)

找到文件并在浏览器中打开:例如,url看起来像:

file:///<some local path>/coverage/lcov-report/src/containers/audience/targetAudience.html
file:////coverage/lcov-report/src/containers/audience/targetAudience.html

您是否未能在TargetAudience组件或其子组件中获得完全覆盖?对于TargetAudience,您能否在控制台中显示覆盖范围的覆盖日志?因为您正在使用
jest
w/使用
--覆盖范围
选项,粘贴覆盖率报告的结果在这里是有益的。添加了测试覆盖率
describe('test the table component', () => {
    it('expect to render table component when searchResults props has some 
        values ', ()=> {
        const searchRes = ['a', 'b'];

        const wrapper = shallow(<TargetAudience searchResults={searchRes} />)

        expect(wrapper.find('Table').length).toBe(1);
        expect(wrapper.find('.target-audience-header').length).toBe(1)
    }) 
    it('render date input correctly with null value', () => {
        const searchRes = [1, 2];
        const columns = {};
        const wrapper = shallow(<TargetAudience searchResults={searchRes} />);
        expect(wrapper.find('Table').props().columns).toBe({});
    });
})
File                                    |  % Stmts | % Branch |  % Funcs |  % Lines | Uncovered Line #s |
 src/containers/audience/targetAudience |       80 |      100 |       50 |       80 |                   |
  index.js                              |       80 |      100 |       50 |       80 |                 9 |
file:///<some local path>/coverage/lcov-report/src/containers/audience/targetAudience.html