有时当我更新快照时,我会得到一个属性ngContext,为了解决这个问题,我必须清理并安装我的node_modules来“解决”这个问题。每次我需要更新快照时,我都必须这样做。我已经搜索了多个解决方案,但没有任何效果。
snapshotSerializers: \[
'jest-preset-angular/build/serializers/no-ng-attributes',
'jest-preset-angular/build/serializers/ng-snapshot',
'jest-preset-angular/build/serializers/html-comment',
\],
有人能帮我吗?
Here is an image
我已经更新了jest版本,也更新了jest-present-angular,但是没有用。我只是想有一个解决方案,不要让我每次都干净安装node_modules
1条答案
按热度按时间wwtsj6pe1#
这确实很烦人,尤其是因为升级Angular 版本后它往往会改变。我的快照现在也失败了,因为这个差异:-/。
因此,查看jest配置后,快照序列化程序将从“jest-preset-angular”模块加载。
这里的相关插件是'jest-preset-angular/build/serializers/ng-snapshot'。现在,有两种方法可以摆脱
__ngContext__
。1.用修改后的副本完全替换插件
在同一个目录中创建该文件的副本,并相应地对其进行修改(行https://github.com/thymikee/jest-preset-angular/blob/40 b769 b8 eba 0 b82913827793 b6 d9 fe 06 d41808 d9/src/serializers/ng-snapshot.ts#L 69):
调整配置:
这种解决方案的缺点是,虽然只更改了一行,但您必须维护插件。
1.用 Package 程序替换插件(首选解决方案)
这只是为原始实现创建了一个 Package 器。其想法是在
__ngContext__
移动到插件链之前删除它。然而,原始插件的逻辑用于fixture序列化。配置的调整方式与之前相同。