#30127·angular-cli

在测试时使用 overrideComponent 会破坏代码覆盖率,如果使用 aot: true

作者: cexbrayat创建于 2025年4月17日更新于 2026年9月3日
标签type: bug/fixfreq1: lowseverity3: brokendevkit/build-angular:karmaarea: @angular/build

QQ 命令

测试

这是倒退吗?

  • [ 是的,这个行为在上一个版本中是有效的

QQ 此错误不存在的上一个版本是

无回复( N)

说明

在使用 " TestBed.override Conferent " 来固定一个儿童部件时,测试码覆盖不再准确

最小复制

生成新应用程序, 并添加一个组件 :

npx@angular/[email protected] 新的aot-coverage -- defaults -- no-route
cd 占地面积
ng g c 用户

在 app.html 中使用应用用户 : 时间轴 :

你好,覆盖范围

< app- user > / app- user > ```

编辑 angular.json 添加"aot":在测试部分中为真并运行:

ng 测试 -- -- 无监视 -- -- 编码覆盖

覆盖率为100%

说明:100%(12/12)
部门:100%(11/11)
职能:100%(3/3)
行:100%(6/6)

现在,在app.spec.ts中,在“每个”之前加上:

TestBed.override 组件( App, {) 删除 :{ 进口: [用户], {\fn华文楷体\fs16\1cHE0E0E0} 添加:{ 进口: [用户], {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

  • ;

(这当然是用一个适当的根来发生,但甚至移除进口,并添加回来的作品来复制这个问题).

再次运行测试 :

ng 测试 -- -- 无监视 -- -- 编码覆盖


现在覆盖面不准确,因为模板没有适当覆盖:

说明:58.33%(7/12) 部门:90.9%(10/11) 职能:66.66%(2/3) 线路:66.66%(4/6)


例外或错误

页:1

您的环境

页:1 角CLI: 20.0.0-后6 节点: 22.14.0 软件包管理器: npm 10.9.0 操作系统:Darwin arm64

角: 20.0.0-后7 ... 常见、 编译器、 编译器- cli、 核心、 形式 ...平台浏览器、路由器

软件包版本

@angular-devkit/architect 0.2000.0-next.6. @angular-devkit/core 20.0.0-next.6. 请检查url=值 (帮助). @angular-devkit/ schematics 20.0.0-next. 6 (中文(简体) ). @angular/building 20.0.0-next. @angular/cli 20.0.0-next. @schematics/angular 20.0.0-next. rxjs 7.8.2 (韩语). TypeScript 5.8.3 冲锋枪 0.15.0区


还有什么关系吗?

无回复( N)

内容来源: angular/angular-cli