只有在所有ava测试通过时才运行命令

时间:2017-12-31 08:21:18

标签: javascript node.js npm ava

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

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

所需的功能如下所示:

npm run safe-deploy

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

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

1 个答案:

答案 0 :(得分: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错误消息:

enter image description here