2016-11-23 6 views
2

エラーを出さずにテストを終了するには、助けが必要です。私はこのコードを持っています:エラーなしでPython Webdriverスクリプトを終了する

tabla = self.driver.find_element_by_css_selector(".tablaSolicitudes") 
for estado in tabla.find_elements_by_tag_name("td"): 
    e = estado.text 
if e.find("Multiadhesion") != -1: 
    print("La solicitud " + solicitudes[i] + " se encuentra con MultiAdhesion. Finaliza el Test.") 
    sys.exit() 

この条件が真であれば、テストは終了しなければなりません。

sys.exit() 
SystemExit 

---------------------- 
Ran 1 test in 139.733s 

FAILED (errors=1) 

しかし、テストはOKですので、どのように私は私はこのエラーが出るドントように、適切な「テスト終了」を作ることができます。ポイントは、そのようにそれを持つ、私はこのエラーが出る、ということでしょうか? 。

ありがとうございました!

答えて

0

sys.exit()は、あなたがしてテストすることができSystemExit例外を発生させます:

with self.assertRaises(SystemExit): 
    your_method() 

今、あなたのテストが成功しなければなりません。その後、

+0

動作しますが、実行されてもテストは終了しません。 – GHM

0

あなたが本当にテストを停止する場合は、次のいずれかの方法がunittest

-f, --fail: fast Stop the test run on the first error or failure.

に利用できる力停止-fを使用している-fオプションを使用してモジュールを実行してみてください:

python sample.py -f 

しかし、テストを合格とマークしません。sys.exit()try..except...ブロック

から削除する必要があります次のようにあなたが行うことができ、実行するテストのコントロールを持っている:

  1. はあなたが終了したい方法でshouldStop = Trueを設定(hereを参照してください。
  2. TrueまたはFalseのいずれであるかにかかわらず、テストメソッドが実行された後(各テストメソッドはTestResultオブジェクトを呼び出し元に返します)、Trueの場合はSTOP()メソッドを呼び出します。

OR

hereを参照してください)別のオプションは、実行を終了する機能を提供しpytestフレームワークです。

pytest.exit("decided to stop the test run") 

参考:

  1. How to stop all tests from inside a test or setUp using unittest?

旧回答:

を置き換えるあなたが終了したい場所に、次の行を追加します。は、次のように:

try: 
    sys.exit() 
except: 
    print "its ok" 

sys.exit() returns SystemExit exception.

私はあなたがunittestフレームワークを使用していると仮定します。テストメソッドに失敗/例外がない場合にのみ、テストはPASSとマークされます。例外をスローするsys.exit()として、unittestFAILとマークします。

テストメソッド自体で例外を処理するため、例外/エラーはスローされないため、unittestはそのテストメソッドをPASSとマークします。

+0

これを実行すると、テストはその実行後に続行しようとします(そのコードの後、メソッドは保持します):/ありがとう、とにかくありがとう! – GHM

+0

恐ろしい!それ以外の方法で解決したにもかかわらず、私が探していたものに近いです。 UFTのようなツールでは、ExitTestという文がありますが、それはそれですが、webdriverはそれをもう少し複雑にします。あなたの答えは大変ありがとうございます。本当にあなたが話していることを知っています! – GHM

0

sysがあなたのコードで上位に定義されているとは分かりませんが、テストで問題が発生している可能性があります。

Seleniumブラウザテスト(私が使用していると思われるもの、selenium-webdriverタグから推測)を閉じるには、通常.close()または.quit()タグが使用されます。 sysがブラウザであると仮定すると、ifステートメントの最後には、sys.closeまたはsys.quitを使用してブラウザを終了します。

.close() will close a tab within a testing browser. .quit() will close the browser window.

さらに詳しいヘルプが必要な場合は、Selenium Python Bindings Documentationをご覧ください。 Python/Seleniumテストを書くときは、いつも大きな助けになっています。

+0

sysは私がself.driver.quit()を実行するとclose()またはquit()ではなく "exit"オプションを表示します。 – GHM

関連する問題