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

时间:2019-05-17 07:15:26

标签: jestjs babel-jest test-coverage

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

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 
|

jest.config.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

};

coverage report

即使rootDir之外的所有对象都通过了,报告也不会显示出来。

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

1 个答案:

答案 0 :(得分:1)

Jest仅会对项目let editorModel = editor.model; let editorDocument = editorModel.document; editorDocument.on('change:data', (event) => { let root = editorDocument.getRoot(); let children = root.getChildren(); for(let child of children){ if(child.is('image')) { editorModel.change(writer => { writer.remove(child); }); } } }); source)中的个文件进行代码覆盖。在您的设置中,这将是rootDir文件夹。

要还对与包含explorebook的文件夹不同的文件夹中的文件运行覆盖率,建议将jest.config.jssource)设置为项目的根文件夹,并更新所有必要的路径: jest.config.js

[rootDir]