powershell - 通过Jenkins运行Powershell脚本时如何修复“脚本返回退出代码1”?
问题描述
我有一个运行一些 Unity 单元测试的 Powershell 脚本。失败时,这将返回代码 1,Jenkins 将其解释为失败并停止当前构建。我该如何避免这种行为?
注意:这个问题与这个问题几乎相同,但是那个问题使用 bash,所以我不能将它应用于我的问题。换句话说,我如何模仿set +e
Powershell 中的行为?或者,我如何告诉 Jenkins 忽略这些脚本返回代码并继续构建?
解决方案
如何模仿
set +e
Powershell 中的行为
您不必这样做 - 这是对外部程序的调用永远不会[1]导致执行过早停止的默认行为,即使它们报告非零退出代码也是如此。
或者,我如何告诉 Jenkins 忽略这些脚本返回代码并继续构建?
确保您的脚本始终以 终止exit 0
确实是确保 Jenkins 不认为脚本调用失败的正确方法(尽管您将丢失有关测试是否失败的信息)。
[1]由于 PowerShell 7.1 之前的缺陷行为,它可能会意外2>
发生:如果您使用重定向并且$ErrorActionPreference = 'Stop'
碰巧生效,则在实际接收到 stderr 输出时会发生脚本终止错误。还有未决的 RFC #277,它建议引入一种选择加入机制,以便将外部程序调用正确集成到 PowerShell 的错误处理中。
推荐阅读
- java - HttpGet 请求 Binance 使用 java 交换错误
- javascript - 单击具有数据属性的按钮
- python - 在 Matplotlib 中指定密度图的颜色范围
- javascript - Highcharts:我可以动画更改条形图上的条形顺序吗?
- python - 用 pandas 查找树中所有叶子节点的祖先
- python - Matplotlib imshow 显示所有像素
- javascript - 在 Stackblitz 上以 Angular 加载本地 JSON
- msdeploy - Msdeploy 在部署期间未删除非空目录
- python - 如何使用基于颜色的方法以外的技术来抑制图像中的背景?
- javascript - 即使我们通过单击按钮添加新的ckeditor,如何设置同一类的多个ckeditor?