代码覆盖率阈值不会阻止脚本在 Angular 应用程序中运行

问题描述

我正在尝试在我的 Angular 项目中实现一个脚本,当我完成一个功能时我可以运行该脚本。我把脚本放在我的 project.json 中。

"fin": "ng lint && ng test --watch=false --code-coverage && ng e2e && ng build --prod"

我在我的 karm.conf.js 中添加

coverageIstanbulReporter: {
      reports: ["html","lcovonly"],fixWebpackSourcePaths: true,thresholds: {
        global: {
          statements: 100,lines: 100,branches: 100,functions: 100,},each: {
          statements: 100,

目标是使用一个命令运行 tslint、具有代码覆盖率的单元测试、e2e 测试和生产构建,并且脚本在出现错误时停止。它几乎可以在代码覆盖部分旁边工作。未达到阈值时不会抛出错误,以便脚本继续运行。

知道我做错了什么吗?

解决方法

您在运行 ng test 后是否看到了如下所示的覆盖率报告?

Coverage report

我使用的是 Angular 5 并且在 plugins 数组中我有 require('karma-coverage-istanbul-reporter') 以及 coverageIstanbulReporter 对象,我没有全局或每个配置。

这是我的 coverageIstanbulReporter 对象:

coverageIstanbulReporter

查看此 link 并尝试复制代码覆盖率执行部分。它可能与 karma-coverage-istanbul-reporter 的文档不同,因为我想到的是 CLI。

Plugins

,

我现在明白了。我不得不在 karma.conf.js 的报告器数组中添加“coverage-istanbul”。