You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Istanbul ignore next无法忽略@ContentChildren装饰的setter方法,Jest覆盖率仍提示未覆盖

Istanbul ignore next无法忽略@ContentChildren装饰的setter方法,Jest覆盖率仍提示未覆盖

我之前也碰到过Angular里这种带装饰器的setter没法用单条/* istanbul ignore next */跳过覆盖率检查的情况,确实有点坑!

问题出在@ContentChildren这类装饰器上——编译时它会生成额外的关联代码,单条的忽略注释只能覆盖装饰器本身,没办法覆盖后面的setter定义部分,所以Jest的覆盖率工具还是会检测到setter的入口没被覆盖。

给你个可靠的解决方案:用/* istanbul ignore start */和/* istanbul ignore end */把整个装饰器加setter的代码块完全包裹起来,这样就能彻底跳过这部分的覆盖率检查了:

/* istanbul ignore start */
@ContentChildren(ElementRef, {descendants: true}) set inputs(inputs: QueryList<ElementRef>) {
    this._inputs = inputs;
}
/* istanbul ignore end */

如果之后你需要保留装饰器的覆盖率,只忽略setter的逻辑,那也可以尝试把忽略注释放在setter内部的第一行,但针对你现在的场景,直接包裹整个块是最省心的做法。

备注:内容来源于stack exchange,提问作者java2017

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 11:58:14