Robotframework 如何强制Robot框架脚本从shell成功返回;退出0“;
在为Robot Framework使用Jenkin插件时,该指令指出我们需要使用“退出0”强制Robot Framework脚本从shell成功返回。这不是一个非常明确的声明 有人能告诉我,当测试成功时,我们如何强制robot框架返回“exit 0”吗?举个例子会很有帮助 以下是詹金斯维基上的声明 使用“退出0”强制Robot脚本从shell成功返回,以授权插件决定构建是否成功 (默认情况下,当出现任何故障时,Robot将退出,并显示错误代码。) 测试)Robotframework 如何强制Robot框架脚本从shell成功返回;退出0“;,robotframework,Robotframework,在为Robot Framework使用Jenkin插件时,该指令指出我们需要使用“退出0”强制Robot Framework脚本从shell成功返回。这不是一个非常明确的声明 有人能告诉我,当测试成功时,我们如何强制robot框架返回“exit 0”吗?举个例子会很有帮助 以下是詹金斯维基上的声明 使用“退出0”强制Robot脚本从shell成功返回,以授权插件决定构建是否成功 (默认情况下,当出现任何故障时,Robot将退出,并显示错误代码。) 测试) 为了判断作业是成功还是失败,jenkin
为了判断作业是成功还是失败,jenkins使用上次运行的命令的退出代码。“退出0”意味着让运行测试的脚本以退出代码
0
(零)完成测试
当机器人完成失败的测试时,有两种方法可以“退出0”:
exit
李>
exit
是一个可以放入脚本中的命令,用于强制执行特定的状态代码。此命令在unix和非unix系统上的行为相同。它接受一个参数(例如0
),并以给定值作为退出代码退出封闭脚本
配置jenkins时,您正在创建包含一个或多个命令的批处理脚本(窗口)或shell脚本(非窗口)。您可以添加exit 0
作为强制此脚本“exit 0”的最后一个命令
例如,您可以将jenkins作业配置为如下所示:
pybot mytests.robot
exit 0
在本例中,最后一行将告诉jenkins脚本已干净地退出,没有错误。jenkins的robot插件将查看输出文件(output.xml),以确定构建是成功还是失败
使用命令行选项--nostaturc
从robot版本2.5.7开始,您可以使用命令行选项--nostaturc
,这将导致robot始终“退出0”,无论有多少测试失败。您可以将此选项包括在jenkins工作中,如下所示:
pybot --nostatusrc mytests.robot
谢谢我和OP有同样的问题,你的答案也适用于我。我使用的是pabot而不是pybot,但幸运的是,pabot支持与pybot相同的命令行参数。我还通过jenkins运行Robot来测试一些功能。当机器人测试失败时,它的jenkins构建也会失败。我希望将构建标记为“不稳定”,而不是因为某些错误而失败(例如“无网络”,因为它更多地是基础设施问题,而不是导致测试失败的代码错误)。我设法用try-catch包装jenkins作业,并从python模块中引发特殊错误(例如,我引发了一个退出代码=3的错误),但当pybot失败时,其退出代码仍然是1。有没有办法告诉机器人传播退出代码@在脚本末尾的Bryan OakleyAn explicit
exit 0
很少有用。然后,shell将使用脚本中最后一条外部命令返回的任何退出代码退出。对于生产脚本,您通常希望shell在退出时出现来自外部命令的任何未处理错误<代码>设置-e在脚本开始时执行此操作,但不要盲目地执行此操作;这是一个很难驯服的野兽,如果你以前没有尝试过的话。@tripleee:我同意它很少有用,但OP特别询问如何使用零退出代码强制退出。这是一种罕见的情况,忽略最后一个命令的状态并强制退出代码为零是有用的。是的,我考虑的更多的是新访客而不是原来的OP。