Sto confrontando due file nel mio programma qui sotto. Se è lo stesso, sto stampando il successo come il fallimento. Sto usando uno strumento di integrazione chiamato jenkins per inviare un messaggio di posta elettronica quando si tratta di un errore nel confronto dei file, per fare ciò: devo gestire correttamente l'errore. Qualcuno può dirmi come gestire l'errore?come gestire gli errori usando 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
Jenkins output della console:
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
Come stai chiamando questo script da Jenkins? Si potrebbe "uscire" con un codice di uscita non standard, o magari sollevare un'eccezione. O confronta i file in un modo diverso, usando i comandi bash al posto di Python. –
Si potrebbe semplicemente usare 'diff'. Se i file sono uguali, il codice di uscita è '0', se sono diversi, il codice di uscita è' 1'. Usa '$?' Per ottenere il codice di uscita. –
Ho lo spazio di lavoro, ho copiato il mio codice lì. Ho programmato di eseguire il mio codice per ogni ora. Ho usato solo uscire nel mio codice qui sotto stampa 'FAILURE' ma non gestisce. – sam