【问题标题】:How to update snapshot with Jest and vue-cli如何使用 Jest 和 vue-cli 更新快照
【发布时间】:2019-09-21 17:30:55
【问题描述】:

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

npm run test ComponentName.spec.js -u
npm run test ComponentName.spec.js --updateSnapshot

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

"scripts": {
    "test": "vue-cli-service test:unit",

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

【问题讨论】:

    标签: javascript vue.js jestjs snapshot vue-cli


    【解决方案1】:

    基于the docs:

    npm run test -- -u
    

    我验证了它的工作原理。

    【讨论】:

    • @SamuelFaure 我发现你可以在你的 package.json 中这样使用它 - "test:unit:update": "vue-cli-service test:unit -u"
    【解决方案2】:

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

    你可以运行:

    npm run test:unit -- -u

    -- 是为了让下一个参数必须传递给子命令。

    或者

    npx vue-cli-service test:unit -u

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

    【讨论】:

    • npm run test:unit -- -u 使用 "@vue/cli-service": "^3.5.0" 为我工作,谢谢!
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      npm 运行测试 -- -u [file_path] //对于特定文件(重击回声的答案)

      【讨论】:

      • 只需添加它就足以提供文件名而不是路径例如path/ComponentName.spec.js --u你可以写npm run test ComponentName --u
      【解决方案5】:

      如果您使用 Lerna monorepo 运行项目,

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

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

      这样你就可以运行了

      npx lerna run test:update:snapshot
      

      或者你可以直接进入包运行

      npm run test -- -u
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-04-09
        • 1970-01-01
        • 1970-01-01
        • 2020-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-08
        相关资源
        最近更新 更多