Angular 9 - 生成空的伊斯坦布尔测试覆盖率报告

Posted

技术标签:

【中文标题】Angular 9 - 生成空的伊斯坦布尔测试覆盖率报告【英文标题】:Angular 9 - Istanbul test coverage report being generated empty 【发布时间】:2020-06-27 20:15:27 【问题描述】:

我收到一份空报告,它列出了文件,但没有填写百分比... 关于可能导致它的任何想法?

错误信息:

Handlebars:访问已被拒绝解析属性“语句”,因为它不是其父级的“自己的属性”。

我的 package.json 文件:

"dependencies": 
    "@angular/animations": "^9.0.4",
    "@angular/cdk": "^9.1.0",
    "@angular/common": "^9.0.4",
    "@angular/compiler": "^9.0.4",
    "@angular/core": "^9.0.4",
    "@angular/forms": "^9.0.4",
    "@angular/platform-browser": "^9.0.4",
    "@angular/platform-browser-dynamic": "^9.0.4",
    "@angular/router": "^9.0.4",
    "@fullcalendar/core": "^4.4.0",
    "chart.js": "^2.9.2",
    "classlist.js": "^1.1.20150312",
    "core-js": "^2.5.7",
    "font-awesome": "^4.7.0",
    "karma-coverage": "^1.1.1",
    "karma-phantomjs-launcher": "^1.0.4",
    "moment-timezone": "^0.5.17",
    "ngx-clipboard": "^12.2.1",
    "primeicons": "^2.0.0",
    "primeng": "^9.0.0",
    "quill": "^1.3.7",
    "rxjs": "^6.5.3",
    "tslib": "^1.10.0",
    "web-animations-js": "^2.3.2",
    "xlsx": "^0.15.1",
    "zone.js": "~0.10.2"
  ,
  "devDependencies": 
    "@angular-devkit/build-angular": "~0.900.4",
    "@angular/cli": "^9.0.4",
    "@angular/compiler-cli": "^9.0.4",
    "@angular/language-service": "^9.0.4",
    "@types/jasmine": "~2.8.3",
    "@types/jasminewd2": "~2.0.2",
    "@types/node": "^12.11.1",
    "jasmine-core": "~2.8.0",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "^4.4.1",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "^1.4.3",
    "karma-jasmine": "~1.1.0",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "~5.4.1",
    "ts-node": "~7.0.1",
    "tslint": "~5.11.0",
    "typescript": "~3.7.5"

这是coverage/index.html文件中的结果

【问题讨论】:

首先你的 package.json 中有过时的依赖,尝试this 更新你的依赖。此外,您还可以发布您的 karma.config.js 吗? 嘿@YuriyKravets 感谢您的评论。你是对的,问题是 karma-coverage-istanbul-reporter 包已经过时了。在我执行以下 npm 更新语句“npm i -D karma-coverage-istanbul-reporter@2.1.1”后,它又开始工作了。谢谢 【参考方案1】:

包“karma-coverage-istanbul-reporter”已过期。 在我执行以下 npm 更新语句“npm i -D karma-coverage-istanbul-reporter@2.1.1”后,它又可以工作了。

【讨论】:

这让我很开心!

以上是关于Angular 9 - 生成空的伊斯坦布尔测试覆盖率报告的主要内容,如果未能解决你的问题,请参考以下文章

Karma-coverage 检查 JS 文件中的测试覆盖率,而不是 Angular 2 中的 TS

使用 Mocha 和伊斯坦布尔生成覆盖范围

为在 phantomjs 中的 browserify 包上运行的 jasmine 测试生成伊斯坦布尔代码覆盖率报告(通过 grunt)

如何从代码覆盖率伊斯坦布尔记者中排除模拟文件

配置 Angular 9 e2e cobertura 覆盖率报告的正确方法是啥?

您如何使用伊斯坦布尔检查单个文件的覆盖率?