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

Смежные вопросы