如何使用 Jest 和 vue-cli 更新快照

Nik*_*kov 32 javascript snapshot vue.js jestjs vue-cli

我应该能够-u在运行测试时添加参数,但我不知道为什么它不起作用:

npm run test ComponentName.spec.js -u
npm run test ComponentName.spec.js --updateSnapshot
Run Code Online (Sandbox Code Playgroud)

但它不起作用。我的 package.json:

"scripts": {
    "test": "vue-cli-service test:unit",
Run Code Online (Sandbox Code Playgroud)

我知道我可以删除快照文件,但我想弄清楚为什么该命令不起作用。

ech*_*cho 74

基于文档:https : //jestjs.io/docs/en/cli#using-with-npm-scripts

npm 运行测试 -- -u

我验证了这个工作。


B. *_*ett 10

yarn test -u为我工作。我们使用纱线。


Sam*_*ure 9

在 vue-cli 3 中,你常用的 npm 命令调用 vue-cli-service 而不是 jest 了。Vue-cli-service 会为你调用 jest。

您可以运行:

npm run test:unit -- -u

--是如此,未来的参数必须传递给子命令。

或者

npx vue-cli-service test:unit -u

这将运行测试并升级快照。


Ale*_*age 5

如果您正在使用Lerna monorepo 运行一个项目,

您可能想将新脚本添加到包的package.json文件中:

{
// ...
"scripts": {
  // ...
  "test:update:snapshot": "jest --updateSnapshot"
  // ...
}
// ...
}

Run Code Online (Sandbox Code Playgroud)

所以你可以运行

npx lerna run test:update:snapshot
Run Code Online (Sandbox Code Playgroud)

或者您可以直接输入包并运行

npm run test -- -u
Run Code Online (Sandbox Code Playgroud)

基本上--告诉你的命令参数-u是针对它的子命令的。