繁体   English   中英

Jenkins / Hudson没有捕获Perl脚本错误

[英]Jenkins/Hudson is not catching Perl script errors

我目前正在使用Jenkins / Hudson触发Perl脚本,但是,我正在努力找出适当的例外情况是抛出一些Jenkins拾取它。 在控制台中,它显示了Perl脚本错误,如预期的那样,但Jenkins的Build Success结束了。

我已经尝试过die命令和出口1的系统打印中的许多操作,但似乎仍然没有发现任何问题。

任何帮助将是巨大的! 提前致谢!

Jenkins认为以非零值退出的构建步骤已失败。 die()应该足够了

也许在perl之后有另一个shell命令以零退出? Jenkins看不到各个进程的每个退出代码。 Jenkins只需将您输入到构建步骤区域中的脚本放入一个临时文件中,然后在临时文件上调用/bin/sh 脚本失败时由您决定是否以非零值退出脚本。

最简单的方法是使用#!/bin/sh -xe开头脚本。 如果您学习Shell手册页,您将看到-e选项使Shell每当有非零值的进程退出时都停止脚本。

我在Linux和Windows上运行Jenkins作业时遇到了这个问题。 我(艰难地)了解到Linux返回码必须在0到255之间。如果返回码不在此范围内,则返回码将设置为0。Perl文档指出die()的返回码为非零,但不再具体。 因此,如果die()调用生成的非零返回码不在0到255之间,Linux会将其视为零。

我使用了TAP :: Harness :: JUnit 它将TAP输出包装在XML文档中,然后将XML通过SCP传递到Hudson服务器,供Hudson使用。

为了使hudson命令正确地执行所有shell命令花费了一些时间,但是我的意思是两到三个尝试来正确设置所有路径。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM