首页 > 解决方案 > 错误:fakeAsync() 测试助手需要 zone-testing.js,但找不到。使用 serenityJS+Jasmine 在 Angular webapp 上运行测试时

问题描述

我正在尝试使用 serenityJS + Jasmine 在 Angular Web 应用程序上运行组件测试,但遇到以下错误。知道如何解决这个问题吗?

Message:
Error: zone-testing.js is needed for the fakeAsync() test helper but could not be found.
        Please make sure that your environment includes zone.js/dist/zone-testing.js

堆栈:错误:fakeAsync() 测试助手需要 zone-testing.js,但找不到。请确保您的环境在 UserContext 的 resetFakeAsyncZone (C:\Users\zhenweiwong\Desktop\serenityjsframework\packages\core\testing\src\fake_async.ts:25:9) 中包含 zone.js/dist/zone-testing.js . (C:\Users\zhenweiwong\Desktop\serenityjsframework\packages\core\testing\src\before_each.ts:26:5) at processImmediate (internal/timers.js:439:21) at process.topLevelDomainCallback (domain.js :131:23) 消息:错误:在此配置中 Angular 需要 Zone.js 堆栈:错误:在此配置中,Angular 在新 NgZone 中需要 Zone.js (C:\Users\zhenweiwong\Desktop\serenityjsframework\packages\core\src\ zone\ng_zone.ts:129:13) 在 TestBedViewEngine._initIfNeeded (C:\Users\zhenweiwong\Desktop\serenityjsframework\packages\core\testing\src\test_bed.
在用户上下文。(C:\Users\zhenweiwong\Desktop\serenityjsframework\jasmine-test\spec\app1.component.spec.ts:32:29) 在

标签: angularunit-testingjasmineserenity-js

解决方案


从 Angular 10 升级到 Angular 12 后,我遇到了同样的问题。然后我通过将 移动import 'zone.js/testing到文件顶部来修复它test.ts

在此处输入图像描述


推荐阅读