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

だから、ジェンキンスこのテストパス上。 しかし、私がコードを変更した場合、Jenkinsは例外をキャッチできません。

+0

は、多分それはあなたが任意の例外を持っていますジェンキンスissue.Locallyではないのですか?で、他のエラーをチェックまた、ローカルジェンキンス環境の違いを調査します試してみる前にジェンキンズ、またはキャッチブロックがないかもしれない。 – lauda

+0

私のコードを変更すると例外がありますが、ジェンキンの例外が表示されますが、ジェンキンはまだテストに合格しません。 – andrew

+0

可能であれば、ジェンキンズの例外を追加します。例外を削除して実行します。スクリプトが例外をキャッチし、ジェンキンが結果をOKと見なす可能性があります。 – lauda

答えて

0

これは、コード内で例外を処理しているためです。何か例外がある場合は、それを印刷しているだけです。このようにして、あなたのケースでJenkinsの呼び出し元アプリケーションはその例外を取得しません。 呼び出し元のアプリケーションに例外を戻す必要があります。また、カスタム例外を発生させて、呼び出し元アプリケーションに詳細を提供することもできます。

引くとpythonでカスタム例外を上げる上のいくつかのベストプラクティスですhere

関連する問題