我最近将Angular应用程序从v14升级到v15以及Materialv15和MDC,但不知何故,它导致越来越多的测试失败.

那么,我想了解一下,在package.json中更新jasmine karma相关包依赖的版本是否是强制性的步骤?因为根据版本兼容性,我们确实更新了package.json中tslib,rxjs,typescript nodejs等的版本.这也适用于Jasmine Karma吗?

如果是,如何做到这一点?会不会解决ANGLE v15升级后出现的测试用例失败问题?所有这些测试都在早些时候通过了.

请提供解决方案.

推荐答案

15中有一些测试逻辑升级,你可以在下面的V15上找到全面的步骤

Angular Upgrade Guide V14 -> V15

您是否完成了以下步骤?

  • 更新使用InjectFlgs参数以使用InjectOptions参数的Injector.get()实例.在v15中,不建议使用Injector.get()的InjectFlgs参数.Read further
  • 更新使用InjectFlgs参数以使用InjectOptions参数的TestBed.inject()实例.在v15中,不建议使用TestBed.inject()的InjectFlgs参数.Read further

还要判断是否正确的版本设置为karmajasmine下面是一个新项目的堆叠闪电战使用Angular 15,版本应该匹配,如果你有一个不同的版本的Angular 15,然后先做npm i -g @angular/cli@<<version>>,然后做ng new test,然后判断karmajasmine的版本,并验证所有的版本是相同的!

"@angular-devkit/build-angular": "^15.2.10",
"@angular/cli": "~15.2.10",
"@angular/compiler-cli": "^15.2.0",
"@types/jasmine": "~4.3.0",
"jasmine-core": "~4.5.0",
"karma": "~6.4.0",
"karma-chrome-launcher": "~3.1.0",
"karma-coverage": "~2.2.0",
"karma-jasmine": "~5.1.0",
"karma-jasmine-html-reporter": "~2.0.0",
"typescript": "~4.9.4"

Stackblitz Demo

Angular相关问答推荐

Angular v12:Uncatch(in promise):ReferenceError:d3 is not defined ReferenceError:d3 is not defined

Angular 信号不更新afterNextender()

对子router-outlet 应用主机样式

material 对话框中没有合适的注塑

带独立零部件的TranslateLoader[Angular 16]

Observable转换为Observable

nx workspace angular monorepo 在创建新应用程序时抛出错误

如何根据响应变化更改 Angular Carousel 的cellsToShow

在父组件的子组件中使用 ng-template

TypeError:this.restoreDialogRef.afterClosed 不是函数

rxjs 这种常见的状态管理模式有名称吗?它有限制吗?

使用directive指令将类添加到host元素中

如何在 Angular 2 应用程序中配置不同的开发环境

在同一个组件中使用 MatSort 的多个 mat-table

在 Angular 中动态设置样式

Angular 6在输入键上添加输入

在 Angular 组件模板中添加脚本标签

如何在 angular2 中的 div 的 contenteditable 上使用 [(ngModel)]?

Angular单元测试输入值

动态添加/删除验证器