2016-09-27 4 views
1

Ich habe ein Problem mit Jenkins und Selen. Ich versuche, diesen Code auf Jenkins auszuführen:jenkins kann keine Ausnahme fangen

from selenium import webdriver 
from pyvirtualdisplay import Display 

display = Display(visible=0, size=(800,800)) 
display.start() 
browser = webdriver.Chrome('/home/andrey/Downloads/chromedriver') 
browser.get('http://www.google.com/') 

try: 
    browser.find_element_by_id('gbw') 
    print ("Test Pass: ID found") 
    browser.find_element_by_id('lga') 
    print ("Test Pass: ID found") 

except Exception as e: 
    print("Exception found",format(e)) 

So auf Jenkins Dieser Testdurchlauf. Aber wenn ich etwas Code ändere, kann Jenkins keine Ausnahme machen.

+0

Vielleicht ist es kein jenkins issue.Locally Sie haben keine Ausnahme? Den Unterschied zwischen lokalen eine jenkins Umgebungen untersuchen, auch für andere Fehler überprüfen in Jenkins vor dem Versuch, oder vielleicht fehlen Sie Catch-Block. – lauda

+0

Ich habe Ausnahme, wenn ich meinen Code ändern, und ich sehe Ausnahme auf Jenkins, aber Jenkins bestehen immer noch den Test statt fehlschlagen. – andrew

+0

Fügen Sie die Ausnahme von jenkins wenn möglich hinzu. Versuchen Sie einen Lauf mit Ausnahme entfernt, möglicherweise fängt das Skript die Ausnahme und jenkins sieht die Ergebnisse als OK. – lauda

Antwort

0

Ich glaube, das liegt daran, dass Sie die Ausnahme in Ihrem Code behandeln. Wenn eine Ausnahme vorliegt, drucken Sie sie nur aus. Auf diese Weise würde die aufrufende Anwendung, die in Ihrem Fall Jenkins ist, diese Ausnahme nicht erhalten. Sie sollten die Ausnahme zurück an die aufrufende Anwendung auslösen. Alternativ können Sie eine benutzerdefinierte Ausnahme auslösen, um der aufrufenden Anwendung weitere Details zu geben.

Einige Best Practices auf den Fang und benutzerdefinierte Ausnahmen in Python Anhebung sind here