我正在比较下面程序中的两个文件。如果它是一样的,那么我是印刷成功,否则作为失败。我正在使用一个名为jenkins的集成工具在比较文件失败时发送电子邮件,为此,我必须正确地处理错误。有人能告诉我怎么处理这个错误吗?在
Error_Status=0
def compare_files(file1, file2):
try:
with open(file1, 'rb') as f_file1, open(file2, 'rb') as f_file2:
if f_file1.read() == f_file2.read():
print 'SUCCESS \n'
#print 'SUCESS:\n {}\n {}'.format(file1, file2)
else:
print 'FAILURE \n'
Error_Status=1
except IOError:
print "File is NOT compared"
Error_Status = 1
詹金斯控制台输出:
^{pr2}$
使用
assert
。它将退出抛出一个异常,因此您将得到回溯将写入输出,而Jenkins任务将失败。在我不认为捕捉异常有什么意义,如果我们的目标是看到什么地方出了问题,让詹金斯的工作失败。在
编辑:如果您真的想显式打印失败的成功:
^{pr2}$实际上不需要编写自己的代码来执行此操作,因为您只需要重新实现现有的^{} Unix命令,如果您使用的是Windows,^{} 命令。在
您可以在Jenkins工作区中执行以下操作之一:
我不太熟悉Windows脚本,但类似这样的方法应该可以奏效:
^{pr2}$如果你真的想让你自己的Python脚本来做这件事。。。。。在
Jenkins将从shell(或类似的命令解释器)中执行脚本。要传达比较结果,可以使用
sys.exit()
设置进程的“退出状态”。通常,如果某个命令的退出状态为0,则该命令成功;否则,该命令将失败;因此,如果文件相同,则可以使用0;如果文件不相同,则可以使用1(或存在错误)。在然后在你的詹金斯工作区:
或者
您可以使用
all
和izip_longest
逐行比较,这样就不会同时在内存中有两个完整的文件,并在出现错误时返回任何{a1}:任何数字条0或1都表示发生了错误。在
^{pr2}$相关问题 更多 >
编程相关推荐