【问题标题】:run command only if all ava tests pass仅当所有 ava 测试通过时才运行命令
【发布时间】:2017-12-31 08:21:17
【问题描述】:

我正在尝试编写一个运行 ava 的 npm 脚本,如果一切顺利,将运行另一个(部署)命令。

如何在 js 中或通过管道传输到文件或以下命令中获取 ava 测试的结果?

所需的功能如下所示:

npm run safe-deploy

哪个会运行 ava,如果一切都通过(由退出代码或解析输出确定)将运行另一个 cli 命令。

以前有没有人这样做过,如果有,最合适的解决方法是什么?

【问题讨论】:

    标签: javascript node.js npm ava


    【解决方案1】:

    您可以做的最简单的事情是使用 bash && 运算符。请查看this answer 了解更多详情。

    它完全符合您的要求:仅在第一个命令执行成功的情况下运行第二个命令。

    因此,例如,如果您有两个 npm testnpm run deploy,您可以将它们与 && 组合以生成 safe-deploy 命令。

    deploy 命令只有在测试通过时才会执行。

    这是您可以拥有的最小 package.json:

    {
      "name": "ava-safe-deploy",
      "version": "1.0.0",
      "main": "index.js",
      "scripts": {
        "test": "ava",
        "deploy": "echo 'deployed successfully!'",
        "safe-deploy": "npm test && npm run deploy"
      },
      "license": "ISC",
      "devDependencies": {
        "ava": "^0.25.0"
      }
    }

    如果测试失败,您会看到常规的ava 错误消息:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-05
      • 1970-01-01
      • 1970-01-01
      • 2016-11-03
      • 1970-01-01
      • 1970-01-01
      • 2011-01-06
      • 2013-12-07
      相关资源
      最近更新 更多