gpt4 book ai didi

angular - 如果代码覆盖率不符合 Angular 6 中定义的阈值,则从 Karma 返回非零错误代码

转载 作者:行者123 更新时间:2023-12-05 07:25:49 26 4
gpt4 key购买 nike

我希望我的 jenkins 构建在代码覆盖率未达到 karma.config.js 中定义的阈值时中断。如果代码覆盖率不符合定义的阈值,Karma 应该返回非零错误代码以中断持续集成。但在我的例子中,它以零错误代码退出,因此如果代码覆盖率小于阈值,则不会导致测试失败。

版本

Angular CLI:6.0.8

Angular :6.1.9

karma :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 测试 --watch false --browsers PhantomJS --code-coverage

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

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

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

预期行为

如果代码覆盖率未达到中断持续集成的阈值,Karma 将返回非零错误代码

实际行为

Karma 报错但正常退出,错误代码为零

在寻找解决方案时,我发现了以下信息:

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

ng test --watch=falseng buildng e2e 等非 watch 命令确实会以错误代码退出。

此外,似乎无法同时关闭自动监视和生成代码覆盖率”

如果有人对我如何解决这个问题有任何建议,或者如果有人对我可能做错了什么有任何想法,请告诉我。

最佳答案

Github 上有问题解决了这个确切的问题,这个问题已经被这个 PR 关闭了.

关于angular - 如果代码覆盖率不符合 Angular 6 中定义的阈值,则从 Karma 返回非零错误代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54708845/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com