我正在尝试将 Jest 单元测试集成到我的项目中,但目前我陷入了覆盖配置的困境。 以下是我的项目的文件夹结构
--jest.config.js
--package.json
--src
----main
------webapp
--------|test // folders to contains test case files
-----------|NoData.test.js // just a sample test case for
--------|components // folder to contains componnents
-----------|NoData.js // sample component for writing test
--------|pages,... // folders to contains code files
我想收集组件文件夹下所有代码文件的覆盖范围,然后这是我的笑话配置,经过多次尝试和谷歌搜索
{
"roots": ["./src/main/webapp"],
"testMatch": ["**/src/main/webapp/test/**/*.test.js"],
"reporters": [ "default", "jest-junit" ],
"testResultsProcessor": "jest-junit",
"testEnvironment": "jsdom",
"setupFilesAfterEnv": ["./jest.setup.js"],
"moduleNameMapper": {
".+\\.(css|styl|less|sass|scss|gif|png|jpg|ttf|woff|woff2|eot)$": "identity-obj-proxy"
},
"collectCoverage": true,
"collectCoverageFrom": [
"**/src/main/webapp/components/**/*.{js}"
]
"forceCoverageMatch": ["**/src/main/webapp/components/**/*.js"], // I have to include this because without this, coverage is "Unknown", dont know why
"coverageReporters": ["html", "text", "text-summary", "json-summary", "cobertura"]
}
以及用于测试 package.json 的脚本
"test-cov": "jest --collectCoverage --watchAll"
然而,覆盖率报告并没有达到我的预期。
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
-------------------|---------|----------|---------|---------|-------------------
All files | 100 | 100 | 100 | 100 |
components | 100 | 100 | 100 | 100 |
NoData.js | 100 | 100 | 100 | 100 |
-------------------|---------|----------|---------|---------|-------------------
任何想法都值得赞赏。非常感谢大家!
通过查看您在问题中提供的信息,让我提及您需要解决的一些问题。
更新
collectCoverageFrom
配置:
"collectCoverageFrom": [
"src/main/webapp/components/**/*.{js}"
]
删除
forceCoverageMatch
配置,因为使用collectCoverageFrom
时不需要它。