如何忽略 Jest 代码覆盖率的文件模式?

新手上路,请多包涵

在我的 Jest 测试项目中,我有 *.entity.ts 文件。我不希望这些文件包含在我的覆盖率测试中。

根据 https://facebook.github.io/jest/docs/en/configuration.html#coveragepathignorepatterns-array-string 上的文档,有一个 coveragePathIgnorePatterns 设置,您可以在 package.json

我尝试过正则表达式和文件模式,但这些模式都没有忽略最终报告中的 *.entity.ts 文件。

当我添加例如 "coveragePathIgnorePatterns": ["common"] 我的测试甚至不会再运行。

关于如何让 Jest 在覆盖率测试中跳过 *.entity.ts 有什么想法吗?

package.json 中的 Jest 部分如下所示:

 {
    "moduleFileExtensions": [
        "js",
        "json",
        "ts"
    ],
    "rootDir": "src",
    "testRegex": ".spec.ts$",
    "transform": {
        "^.+\\.(t|j)s$": "ts-jest"
    },
    "coverageDirectory": "../coverage"
}

原文由 Bas van Dijk 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.6k
2 个回答

我使用一个外部 JSON 文件来保存我的 Jest 配置并从我的 package.json 使用 npm 运行它: jest --config jest.config.json --no-cache

开玩笑.config.json

 {
    "collectCoverage": true,
    "collectCoverageFrom": [
        "src/**/*.ts"
    ],
    "coveragePathIgnorePatterns": [
        "node_modules",
        "test-config",
        "interfaces",
        "jestGlobalMocks.ts",
        ".module.ts",
        "<rootDir>/src/app/main.ts",
        ".mock.ts"
    ],
    "coverageDirectory": "<rootDir>/coverage/",
    "coverageThreshold": {
        "global": {
            "branches": 20,
            "functions": 30,
            "lines": 50,
            "statements": 50
        }
    },
    "mapCoverage": true,
    "preset": "jest-preset-angular",
    "setupTestFrameworkScriptFile": "<rootDir>/src/setupJest.ts",

    "transformIgnorePatterns": [
        "<rootDir>/node_modules/(?!@ionic-native|@ionic|@ngrx|angular2-ui-switch|angularfire2|jest-cli)"
    ],
    "verbose": false
}

我的覆盖范围不包括“coveragePathIgnorePatterns”中列出的文件。也许源代码行“/src/app/main.ts”是您需要的条目。

原文由 Steven Scott 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以添加一个!在 collectCoverageFrom 参数中标记以将其排除在计数之外。这里是 src 目录的子文件夹中的任何文件

  collectCoverage: true,
  collectCoverageFrom: ['src/**/*.ts','!src/*/filesToExclude.ts']

原文由 Gourab Paul 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题