0

我正在使用 jest 快照以及 jest-image-snapshots。它们在本地工作,但是当我在 azure 管道中运行它们时,我得到:

    New snapshot was not written. The update flag must be explicitly passed to write a new snapshot.

    This is likely because this test is run in a continuous integration (CI) environment in which snapshots are not written by default.

每次运行时更新快照不会破坏目的吗?

我进行了一些研究,但我找到的最佳解决方案是更新快照或删除 CI=true。删除 CI=true 不起作用,我看不出更新快照如何是一个好的解决方案。

单元测试以及集成测试中的图像快照都会发生这种情况。

任何澄清或替代解决方案都值得赞赏。

4

1 回答 1

1

在诸如 Azure DevOps 之类的 CI 系统中,Jests 快照不会自动写入,除非--updateSnapshot明确传递以告诉它重新生成快照。

要解决此问题,您可以运行以下脚本:

jest --updateSnapshot

更重要的是,建议将快照放在存储库中,而不是在 CI 中重新生成它们。

如果没有特殊要求,可以先在本地运行 snappshots 并将 .snap 文件放到仓库中,然后在 CI 上运行。

于 2020-09-11T08:15:44.070 回答