2016-09-27 75 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