开玩笑针对特定测试文件的updateSnapshot

me-*_*-me 6 reactjs jestjs

我试图弄清楚如何更新单个快照文件。在文档中,它说只需添加-t,然后我假定文件名,但这对我不起作用。

例如,在终端中我使用。

jest -u -t test/js/tests/components/myTestApp.test.js
Run Code Online (Sandbox Code Playgroud)

任何想法为什么这将不起作用。我也将其添加为字符串。

小智 9

这有效

jest /path/to/file --updateSnapshot
Run Code Online (Sandbox Code Playgroud)


Nig*_*ury 8

为了更新特定的快照,您可以将名称作为参数传递给您的脚本test命令。

在 package.json 中

"test": "jest --verbose"
Run Code Online (Sandbox Code Playgroud)

在命令行中

npm test "<spec name>" -- -u
Run Code Online (Sandbox Code Playgroud)

或者

npm test "<spec name>" -- --updateSnapshot
Run Code Online (Sandbox Code Playgroud)


And*_*nko 6

根据文档https://facebook.github.io/jest/docs/en/cli.html -t选项不是在搜索文件名,而是在搜索特定的规范名。他们提供了一个例子

jest -u -t="ColorPicker"
Run Code Online (Sandbox Code Playgroud)

其中“ ColorPicker”是规范的名称,以describe或test块给出。

  • @Cubelaster,您不必全局安装 jest,因为您可以在它前面添加 `npx` (即 `npx jest -u -t="ColorPicker"`)来调用包的本地实例。 (2认同)

t_d*_*m93 6

如果您通过 运行 Jest ,则可以通过在Jest 参数 - 路径和快照标志之间npm test插入一个来使用参数:--npm test

npm test -- path/to/file -u