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

gcxthw6b  于 2022-12-08  发布在  Jest
关注(0)|答案(4)|浏览(286)

在我的Jest测试项目中,我有*.entity.ts文件。我不希望这些文件包含在我的覆盖率测试中。
根据www.example.com上的文档https://facebook.github.io/jest/docs/en/configuration.html#coveragepathignorepatterns-array-string,您可以在package.json中使用coveragePathIgnorePatterns设置
我已经尝试了regex和文件模式,但没有一个可以忽略最终报告中的*.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"
}
13z8s7eq

13z8s7eq1#

我使用一个外部JSON文件保存Jest配置,并使用npm从package.json运行它:jest --config jest.config.json --no-cache
jest.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”是您需要的条目。

qni6mghb

qni6mghb2#

您可以在collectCoverageFrom参数中添加!标记以将其从计数中排除。此处,src目录的子文件夹中的任何文件

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

ibrsph3r3#

您也可以在package.js中添加以下内容:

... // Other data
"jest": {
    "coveragePathIgnorePatterns" : [
      "<rootDir>/src/index.js",
      "<rootDir>/src/reportWebVitals.js"
    ]
}
... // Other data

这是使其工作所需的唯一配置

mgdq6dx1

mgdq6dx14#

在我的例子中,下面的 rootDir jest参数意味着是'test'目录。

jest --rootDir=./test

相关问题