gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 12:00:07 27 4
gpt4 key购买 nike

我正在尝试使用 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,但找不到。
请确保您的环境包含 zone.js/dist/zone-testing.js
在 resetFakeAsyncZone (C:\Users\zhenweiwong\Desktop\serenityjsframework\packages\core\testing\src\fake_async.ts:25:9)
在用户上下文。 (C:\Users\zhenweiwong\Desktop\serenityjsframework\packages\core\testing\src\before_each.ts:26:5)

在 processImmediate (internal/timers.js:439:21)
在 process.topLevelDomainCallback (domain.js:131:23)
信息:
错误:在这个配置中 Angular 需要 Zone.js
堆:
错误:在这个配置中 Angular 需要 Zone.js
在新的 NgZone (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.ts:409:9)
在 TestBedViewEngine.createComponent (C:\Users\zhenweiwong\Desktop\serenityjsframework\packages\core\testing\src\test_bed.ts:599:10)
在 Function.TestBedViewEngine.createComponent (C:\Users\zhenweiwong\Desktop\serenityjsframework\packages\core\testing\src\test_bed.ts:245:36)
在用户上下文。 (C:\Users\zhenweiwong\Desktop\serenityjsframework\jasmine-test\spec\app1.component.spec.ts:32:29)

最佳答案

你好,回答有点晚,但我在这里留下评论以供将来引用:
错误来源
就我而言,错误是在 中发现的。 test.ts 文件。当使用命令 创建时,此文件设置在 Angular 规范文件中默认使用的 TestBed 配置。 ng 生成组件 my-component .
解决方案
修复是确保以下导入位于文件的顶部
test.ts 在任何其他导入之前:

import 'zone.js';
import 'zone.js/testing';
小心可能会改变这些导入顺序的配置,因为它可能会导致再次破坏测试。这就是为什么您可能会通过 test.ts 文件:
  • 停用 onSave 优化导入。
  • 避免运行 Prettier , Beautify或其他重新组织导入的代码样式格式化程序。
  • 检查预提交钩子(Hook),如 Husky格式化文件并重新组织导入。

  • 进一步的故障排除
    您可能还想查看是否存在以下导入:
    import 'zone.js';
    import 'zone.js/dist/async-test.js';
    import 'zone.js/dist/proxy.js';
    import 'zone.js/dist/sync-test';
    import 'zone.js/dist/jasmine-patch';
    在此 thread 中使用其他方法解决了相同的问题.

    关于angular - fakeAsync() 测试助手需要错误 : zone-testing. js,但找不到。使用 serenityJS+Jasmine 在 Angular webapp 上运行测试时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67414283/

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