これは私の改札を取ったインタビューの質問です。我々は5,6セレン試験でセレンテストクラスを持っています。テスト3が実行中で、ネットワーク障害が発生しました。今度は、ネットワークが再開したら、3回目のテストのように、失敗した場所から開始するようにフレームワークを設定する方法を教えてください。すでに実行されているテストを実行する必要があります。1 & 2.フレームワークがjunitであると仮定します。ネットワーク障害後のテスト実行を続行
答えて
私は彼の答えにjavaguyと同意できません。私はその質問が完全に有効だと思う。コンセプトとしての単体テストとツールとしてのJUnitには大きな違いがあります。
javaguyの答えに記載されているのは単体テストです。これらは実際には何も使用できませんが、クラスをメモリにロードして書き込みます。しかし、確かにセレンのWebドライバを使用しているテストは単体テストではありません。そして、これらのテストを実装するためのフレームワークとしてJUnitを選択することは有効です。もちろん、JUnitがそのための最良のツールであるかどうかは論じることができますが、JUnitがこれらのテストの実装ツールとして選択された場合の最終的な話です。これは有効な選択です。
あなたの質問にお答えします。あなたが望むものを達成するには、さまざまな方法があります。
テストを再実行できるようにするJUnitルールを作成します。一般的にAOPの用語に精通しているなら、ルールはインターセプタやアスペクトに似ています。彼らはテストを傍受し、失敗するとテストを再開することができます。 Hereあなたはルールを説明し、いくつかのリンクを提供する質問を見つけることができます。
カスタムランナーを実装します。この方法は、JUnitがランナー用スロットを1つだけ提供するため、他のランナーを使用していない場合にのみ機能します。 このカスタムランナーは、テストコールを再び傍受し、ネットワーク障害/ネットワークへのpingを実行した後に再実行し、待機し、「復帰」すると再実行されます。次に、
@RunWith
注釈を使用して実際のランナーをテストすることができます。適用溶液。あなたのテストでセレンのwebドライバが実際にネットワークに依存する唯一のものだと仮定すると、あなたの呼び出しにセレンドライバの呼び出しをラップします。セレンのすべてのコールに
try/catch
を指定し、例外をキャッチした場合は再試行してください。このためにアスペクトを使用することも、ラッパーを手動で実装することもできます。あり
ホープこれは
に役立ちます...ジェンキンス/ビルド・ツールのレベルでも、いくつかの解決策がありますが、私は、これらが実際にスコープ外にいると思います- 1. Python Botネットワーク障害後に再試行する方法
- 2. ネットワーク障害後のRabbitMQ接続自動回復
- 3. arquillianテストを実行中の間欠障害
- 4. UITableViewCell行の障害
- 5. pyCOMPSアプリケーションを実行中のSCP障害
- 6. ローカルで実行中のソナーランナーの障害
- 7. Socky接続障害
- 8. ネットワーク障害後にデータベース接続を再確立する - 休止状態
- 9. SQLの接続障害やネットワークの信頼性
- 10. 高速障害テストのようなSICPスキームファイルを実行してください
- 11. ダウンロードマネージャーのネットワーク障害の問題
- 12. NSURLSession background download - ネットワーク障害で再開
- 13. ワンセグ障害やって、次のコードは、最後の行にワンセグ障害を取得<string>
- 14. SVNリポジトリサーバの障害時の移行
- 15. ネットワーク障害による切断イベントの接続の再接続 - Socket.io
- 16. モバイルエミュレータ接続障害(マージレプリケーション)
- 17. apns-ポート接続障害
- 18. C#MVC経路障害後の経路を継続する
- 19. 実行時に障害が検出されましたか?
- 20. Javaのmysqlの接続リンク障害
- 21. LCPネゴシエーション中のGPRS PPP接続障害
- 22. MySQLのJDBC接続障害エラー
- 23. 支払い後にpaypal Express Checkoutでネットワーク障害を処理する方法は?
- 24. CALayerの障害?
- 25. Oracleデータベースの障害後に永続性ユニットに再接続する方法
- 26. psakeで障害が発生した場合のpostactionを実行するには?
- 27. ブール障害
- 28. Foreachループ障害
- 29. Segementation障害(コアダンプ)
- 30. jqGrid 4.3.2障害