以下のプログラムで2つのファイルを比較しています。それが同じであれば、私は失敗として成功として印刷しています。私はファイルを比較することに失敗したときに電子メールを送信するためにjenkinsという統合ツールを使用しています。これを行うには、エラーを適切に処理する必要があります。誰かがエラーを処理する方法を教えてもらえますか?pythonを使ってエラーを処理する方法は?
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
ジェンキンスコンソール出力:
E:\Projekte\Audi\Cloud_SOP17_TTS>rem !BUILD step: Execute test: tts.py
E:\Projekte\Audi\Cloud_SOP17_TTS>call python tts.py file1 file2 || echo failed
INPUT ENG: I am tired
Latency: 114msec
[ERROR] Can't Create Reference PCM or Response JSON files!
INPUT GED: facebook nachricht schönes wetter heute
Latency: 67msec
INPUT GED: erinnere mich an den termin heute abend
Latency: 113msec
E:\Projekte\Audi\Cloud_SOP17_TTS>echo Started at: 15:51:25.37
Started at: 15:51:25.37
E:\Projekte\Audi\Cloud_SOP17_TTS>exit 0
Archiving artifacts
Recording plot data
Saving plot series data from: E:\Projekte\Audi\Cloud_SOP17_TTS\Backups\tts_2016_02_04.py
Not creating point with null values: y=null label= url=
No emails were triggered.
Finished: SUCCESS
このスクリプトはJenkinsからどのように呼び出していますか?非標準の終了コードで 'exit'するか、あるいは例外を送出することができます。あるいは、Pythonの代わりにbashコマンドを使って、ファイルを別の方法で比較してください。 –
あなたは単に 'diff'を使うことができます。ファイルが同じであれば、終了コードは「0」であり、異なる場合には終了コードは「1」である。 '$?'を使って終了コードを取得します。 –
私はワークスペースを持っています。そこにコードをコピーしました。 1時間ごとにコードを実行する予定です。私は、 'FAILURE'の下のコードで終了しましたが、それは処理しません。 – sam