运行 仅当所有 ava 测试通过时才执行命令
run command only if all ava tests pass
我正在尝试编写一个 npm 脚本,它将 运行 ava,如果一切通过,将 运行 另一个(部署)命令。
如何在 js 中获取 ava 测试的结果,或者通过管道传输到文件或遵循命令?
所需的功能如下所示:
npm run safe-deploy
哪个会 运行 ava,如果一切都通过(由退出代码或解析输出决定)会 运行 另一个 cli 命令。
以前有没有人这样做过,如果有,最合适的解决方法是什么?
最简单的方法是使用 bash &&
运算符。请查看 this answer 以获取更多详细信息。
它完全符合您的要求:仅在第一个命令成功执行的情况下运行第二个命令。
因此,例如,如果您有两个 npm test
和 npm 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
错误消息:
我正在尝试编写一个 npm 脚本,它将 运行 ava,如果一切通过,将 运行 另一个(部署)命令。
如何在 js 中获取 ava 测试的结果,或者通过管道传输到文件或遵循命令?
所需的功能如下所示:
npm run safe-deploy
哪个会 运行 ava,如果一切都通过(由退出代码或解析输出决定)会 运行 另一个 cli 命令。
以前有没有人这样做过,如果有,最合适的解决方法是什么?
最简单的方法是使用 bash &&
运算符。请查看 this answer 以获取更多详细信息。
它完全符合您的要求:仅在第一个命令成功执行的情况下运行第二个命令。
因此,例如,如果您有两个 npm test
和 npm 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
错误消息: