什么是过时快照和快照文件?

And*_*ndy 17 jestjs

我发现 Jest Snapshot Summary 有点令人困惑。在我们的存储库之一中运行测试后,我得到以下摘要:

Snapshot Summary
 › 2 snapshots written in 1 test suite.
 › 50 obsolete snapshot files found, re-run with `-u` to remove them.
 › 3 obsolete snapshots found, re-run with `-u` to remove them.
Run Code Online (Sandbox Code Playgroud)

快照测试意味着我们将当前测试的输出与更改前的输出进行比较,以捕捉副作用。

因此,如果我做对了,总结意味着

  • 2 个测试是新的,没有可用的快照进行比较
  • 50 次测试仍提供与以前相同的输出
  • 删除了 3 个测试,但快照仍然存在

所以运行-u

  • 更新 50 个快照的时间戳,但不更改其内容
  • 删除3个无用快照的文件

这样的理解正确吗?

And*_*ndy 17

我发布这个问题已经有一段时间了,我知道我可以自己回答:

“过时”是指不再.toMatchSnapshot()存在的快照或快照文件

每个测试套件将快照组织在一个文件中。这些文件中的单个快照与它们的测试名称一起存储,在 jest 的it()函数中给出。如果重命名测试,旧快照仍在快照文件中,但被识别为“过时”。

› 2 snapshots written in 1 test suite.

? 2 个测试是新的,没有可用的快照进行比较

这一点是正确的。

› 50 obsolete snapshot files found

50 次测试仍提供与以前相同的输出

错误的,50个相应的测试套件已被重命名,移动或删除。如此高的数字是不寻常的,在更新快照之前,您可能应该找到一种方法将快照重新映射到它们的测试。

› 3 obsolete snapshots found

? 删除了 3 个测试,但快照仍然存在

所以这只是部分正确,因为测试可能已经重命名,而不是删除。