8

当我尝试包含所有项目源代码以获得更合理的代码覆盖率数字时,我最终得到

----------|----------|----------|----------|----------|----------------|
File      |  % Stmts | % Branch |  % Funcs |  % Lines |Uncovered Lines |
----------|----------|----------|----------|----------|----------------|
All files |  Unknown |  Unknown |  Unknown |  Unknown |                |
----------|----------|----------|----------|----------|----------------|

我的配置包含以下内容:

"collectCoverageFrom": [
    "<rootDir>/app_modules/",
    "<rootDir>/src/"
],    

我也尝试过不带尾随的/,有**/*.js尾随的,*.js都无济于事。

根据该--debug选项,路径扩展到我想从中收集覆盖信息的路径(不是问题)

那么获得更准确的覆盖率信息有什么魔力呢?

我能找到的最好的文档来自这个 Github PR: https ://github.com/facebook/jest/pull/1349/files


我最终做了:

"collectCoverageFrom": [
    "**/*.js",
    "!webpack.config.js"
],

这只有效,因为这是默认配置的一部分

"testPathIgnorePatterns": [
    "/node_modules/"
],

但是,它确实为测试运行增加了大量时间。

4

3 回答 3

17

非常仔细地查看您的链接:

collectCoverageFrom: {
  description: wrap(
    'relative to <rootDir> glob pattern matching the files that coverage ' +
      'info needs to be collected from.'
      ...

你不能使用<rootDir>. 尝试:

collectCoverageFrom: [
    "**/app_modules/**",
    "**/src/**"
],
于 2016-09-19T11:01:56.173 回答
0

这只是添加到您编辑的问题的其他信息:而不是声明第二个数组:

"testPathIgnorePatterns": [
    "/node_modules/"
],

您可以通过添加到您不想收集的覆盖信息的目录来继续使用您的collectCoverageFrom阵列:!

collectCoverageFrom: [
    "!**/node_modules/**"
],
于 2019-02-08T08:25:53.450 回答
0

您可以使用选项 forceCoverageMatch 强制取消覆盖: [' / .ts',' / .js']

于 2019-08-23T11:46:52.250 回答