如果代码覆盖率未达到Angular 6中定义的阈值,则从Karma返回非零错误代码

问题描述 投票:2回答:1

我希望当代码覆盖率未达到karma.config.js中定义的阈值时,我的jenkins构建应该中断。如果代码覆盖率未达到定义的阈值,则业力应返回非零错误代码以破坏连续集成。但是在我的情况下,它以零错误代码退出,因此如果代码覆盖率小于阈值,则会导致测试不失败。

版本

Angular CLI:6.0.8

角度:6.1.9

业力:1.7.1

代码:

以下是我在karma.config.js中设置的阈值

coverageIstanbulReporter:{

  dir: require('path').join(__dirname, '../coverage'),
  reports: ['html', 'lcovonly'],
  fixWebpackSourcePaths: true,
  thresholds: {
    statements: 80,
    lines: 80,
    branches: 80,
    functions: 80
  }
}

我正在执行以下命令:

ng test --watch false --browsers PhantomJS --code-coverage

业力显示以下错误,但返回0作为错误代码:

错误[reporter.coverage-istanbul]:分支机构的覆盖率(70.7%)未达到全局阈值(80%)

错误[reporter.coverage-istanbul]:函数的覆盖率(79.05%)未达到全局阈值(80%)

预期行为

如果代码覆盖率未达到破坏连续集成的阈值,则因果返回非零错误代码

实际行为

Karma发出错误,但像正常一样退出,错误代码为零

寻找解决方案时,我遇到了此信息:

“以监视模式运行的ng testng serveng build --watch之类的命令通常不会错误退出。这是设计使然。

但是,ng test --watch=falseng buildng e2e之类的非监视命令确实会退出并显示错误代码。

而且似乎无法同时关闭自动监视功能和同时生成代码覆盖率“

[如果有人对我的解决方法有任何建议,或者有人对我可能做错的事情有任何想法,请告诉我。

我希望当代码覆盖率未达到karma.config.js中定义的阈值时,我的jenkins构建应该中断。如果代码覆盖率...

angular angular-cli karma-jasmine karma-runner karma-coverage
1个回答
0
投票

Github上有一个问题已解决了这个确切的问题,并且此问题已由此PR解决。

© www.soinside.com 2019 - 2024. All rights reserved.