jest@23.1.0collectCoverageFrom不选取根目录之外的文件

ami*_*han 5 test-coverage jestjs babel-jest

当我运行代码覆盖率时,包含 jest 配置的根目录内的代码工作正常,但对于根目录外的代码测试用例通过,但在覆盖率报告中,它显示根目录外的所有测试文件的百分比为零。

jest.config.js文件位于 explorebook 文件夹内。

目录结构:

|---core
|   |--components
|      |--test
|   |--jest.setup.suites.js
|---explorebook
|    |--components
|    |  |--test
|    |--package.json
|    |--jest.config.js
|    |--jest.setup.suites.js
|---framework    
|     |--commons
|        |--test
|     |--jest.setup.suites.js 
|
Run Code Online (Sandbox Code Playgroud)

笑话配置.js

const TEST_FILES_REGEX = '(/test/.*|(\\.|/)(test|spec))\\.js$';

module.exports = {
    verbose: false,
    roots: [
        '<rootDir>/',
        '<rootDir>/../core/',
        '<rootDir>/../framework/commons/'
    ],
    collectCoverage: true,
    collectCoverageFrom: [
         'components/**/*.js',
         '<rootDir>/../core/components/**/*.js'
         '<rootDir>/../framework/commons/*.js'
    ],
    coverageDirectory: 'reports/coverage',
    coverageReporters: [
        'lcov',
        'text'
    ],
   setupFiles: [ '<rootDir>/jest.setup.suites.js', 
          '<rootDir>/../core/jest.setup.suites.js', 
          '<rootDir>/../framework/jest.setup.suites.js' ],
   setupTestFrameworkScriptFile: path.join(__dirname, 'jest.setup.tests.js'),
   testEnvironment: 'jsdom',
   testRegex: TEST_FILES_REGEX

};

Run Code Online (Sandbox Code Playgroud)

报道报告

即使 rootDir 之外的所有内容都通过了,报告也不会显示这一点。

我希望报告中外部文件的覆盖率值也正确。

小智 8

Jest 将仅改进项目rootDir源代码)内文件的代码覆盖率。在您的设置中,这将是该explorebook文件夹。

为了对与包含 的文件夹不同的文件夹中的文件进行覆盖jest.config.js,我建议将[rootDir]( source ) 设置为项目的根文件夹,并更新任何必要的路径: jest.config.js

const TEST_FILES_REGEX = '(/test/.*|(\\.|/)(test|spec))\\.js$';

module.exports = {
    verbose: false,
    rootDir: './../' // This should point to your project root folder
    collectCoverage: true,
    collectCoverageFrom: [
         '**/*.js',
    ],
    coverageDirectory: '<rootDir>/explorebook/reports/coverage',
    coverageReporters: [
        'lcov',
        'text'
    ],
   setupFiles: [ '<rootDir>/explorebook/jest.setup.suites.js', 
          '<rootDir>/core/jest.setup.suites.js', 
          '<rootDir>/framework/jest.setup.suites.js' ],
   setupTestFrameworkScriptFile: path.join(__dirname, 'jest.setup.tests.js'),
   testEnvironment: 'jsdom',
   testRegex: TEST_FILES_REGEX

};
Run Code Online (Sandbox Code Playgroud)