如何解决节点打字稿项目中的笑话覆盖率始终返回空
当我尝试获取单元测试用例的覆盖率报告时,我正在开发后端Typescript项目,Jest在终端以及html报告中均未声明任何内容,返回空的覆盖率报告。我也尝试使用---coverage --watchAll = false ,但它也返回空文档。我无法找到此问题的解决方案。有人可以帮我弄清楚我在做什么错吗?
package.json
"scripts":{
"unit-test": "jest --config='./config/jest/jest_unit.config.js' --forceExit --detectOpenHandles",}
jest_unit.config.js
/**
* @file Jest Unit Test Configuration File
*/
module.exports = {
roots: ['../../tests'],testRegex: '.*_unit.test.(js|ts|tsx)?$',globals: {
'ts-jest': {
tsConfig: 'tsconfig.json',},moduleFileExtensions: ['ts','js'],transform: {
'^.+\\.(ts|tsx)$': 'ts-jest',testEnvironment: 'node',reporters: [
'default',[
'../../node_modules/jest-html-reporter',{
pageTitle: 'Unit Test Report',outputPath: 'tests/reports/unit-test-report.html',includeFailureMsg: true,],collectCoverage: true,collectCoverageFrom: [
'../../api/**/*.ts'
],moduleFileExtensions: ["ts","js","json"],coverageDirectory: "../../coverage",coveragePathIgnorePatterns: [
"<rootDir>/node_modules"
],coverageReporters: [
"json","lcov","text"
],coverageThreshold: {
"global": {
"branches": 100,"functions": 100,"lines": 100,"statements": 100
}
},};
文件夹结构
|-- app
|-- controllers
|-- schemas
|-- config
|-- jest
|-- jest_unit.config.js
|-- package.json
|-- tests
|-- api
|-- modules
|-- m1
|-- controllers
|-- m1_controller_unit.test.ts
|-- m1_controller_integration.test.ts
|-- m2
|-- models
|-- m1_model_unit.test.ts
|-- m1_model_integration.test.ts
|-- m3
|-- schemas
|-- m1_schema_unit.test.ts
|-- m1_schema_integration.test.ts
最佳报道 htm,终端没有显示报道行
解决方法
尝试如下更改您的collectCoverageFrom
:
collectCoverageFrom: [
'../../tests/**'
],
**
意味着递归包括所有文件。详细信息在https://jestjs.io/docs/en/configuration#collectcoveragefrom-array
能够通过将配置文件移至根目录来解决此问题,这里的配置一切都很好,我不知道为什么玩笑会像这样。
更新后的结构
文件夹结构
|-- app
|-- controllers
|-- schemas
|-- jest_unit.config.js
|-- package.json
|-- tests
|-- api
|-- modules
|-- m1
|-- controllers
|-- m1_controller_unit.test.ts
|-- m1_controller_integration.test.ts
|-- m2
|-- models
|-- m1_model_unit.test.ts
|-- m1_model_integration.test.ts
|-- m3
|-- schemas
|-- m1_schema_unit.test.ts
|-- m1_schema_integration.test.ts
package.json
"scripts":{
"unit-test": "jest --config='./jest_unit.config.js' --forceExit --detectOpenHandles",}
,
我也随机遇到了这个问题,我没有解决方法或不知道为什么,但清除缓存并再次运行它总是有效:
jest --clearCache
jest --coverage
我相信这可能与 ts-jest 而不是开玩笑本身有关。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。