2016-09-27 71 views
1

詹金斯和硒有一些問題。 我嘗試在詹金斯運行此代碼:詹金斯無法捕捉異常

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)) 

於是就詹金斯這個測試通過。 但是,如果我在代碼中做了一些更改,詹金斯無法捕捉異常。

+0

也許這不是一個詹金斯issue.Locally你有什麼異常?調查當地的詹金斯環境之間的差異,也爲您在其他錯誤嘗試之前jenkins,或者你失蹤catch塊。 – lauda

+0

當我更改我的代碼時,我有異常,並且在jenkins上看到異常,但jenkins仍然通過測試而不是失敗。 – andrew

+0

如果可能的話,從jenkins中添加異常。嘗試除去除外的運行,也許腳本捕獲異常,並且jenkins將結果視爲確定。 – lauda

回答

0

我相信這是因爲您正在處理代碼中的異常。當有任何異常時,您只是在打印它。這樣在你的情況下Jenkins的調用應用程序不會得到這個異常。 您應該將異常提交回調用應用程序。或者,您也可以引發自定義異常,以便爲調用應用程序提供更多詳細信息。

上捕捉和Python中提高自定義異常的一些最佳做法是here