typescript - 由于 ANSI,Jest 快照测试以相同的输出失败
问题描述
所以,我创建了一个自定义的笑话匹配器,我测试它们的一种方法是使用快照测试。
测试在我的本地环境 (Windows) 中通过并在 CI (Linux) 中失败
失败测试的输出是相同的。
我试图重现这个问题,所以我在我的 WSL 中运行了测试并且测试通过了,所以我在其他一些 Linux 服务器上运行它并且测试再次通过了。
我认为这是某种行尾问题,所以我检查了一下,我的行尾是 LF,所以仍然没有解决方案。
我通过以下方式调试 CI:
- 打印快照
- 更新快照
- 再次打印
我发现我的快照包含 ANSI 转义码,所以经过一番搜索后,我发现了这个 GitHub 问题评论 -快照比较失败,但结果看起来与合作者写道的相同:
您可以尝试使用
NO_COLOR=1
orCI=true
或类似的方式运行
所以我在我的本地机器上同时尝试了这两种方法,但没有运气,我在 WSL 中尝试过,但失败了,所以我删除了CI=true
(因为我考虑了 ANSI)并且测试通过了,所以我只尝试了CI=true
和测试失败。
所以我不想只在 WSL 中运行我的测试,所以我需要找到一个不同的解决方案让它成为相同的快照。
解决方案
所以解决方案是使用jest-snapshot-serializer-ansi
包。
我需要像这样将它添加到snapshotSerializers
开玩笑的配置中:
{
"snapshotSerializers": ["jest-snapshot-serializer-ansi"]
}
推荐阅读
- eclipse - 使用 geospark 库的 Maven 包错误
- botframework - 多次对话
- c# - 从 MainBody 中删除 html 标签
- r - x 和 y 有误差的线性回归
- sql - 在 SQL Server 中同步 2 个相关表
- html - 使用 html 和 javascript 并更改 html 文档的属性,但这不适用于我的情况?
- ios - 在 .plist 文件中使用 .xcconfg 值
- python - 为什么 pandas df.at 更新两个数据框
- android - 试图从 JNI 调用函数,但我得到 No implementation found
- bash - 在 sed 中更改许多文件中的最后一行 - sed 仅在第一个更改