これは私の改札を取ったインタビューの質問です。我々は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. ローカルで実行中のソナーランナーの障害
- 8. Socky接続障害
- 9. ネットワーク障害後にデータベース接続を再確立する - 休止状態
- 10. SQLの接続障害やネットワークの信頼性
- 11. ダウンロードマネージャーのネットワーク障害の問題
- 12. 高速障害テストのようなSICPスキームファイルを実行してください
- 13. Dockerでネットワーク障害をシミュレートする
- 14. kotlinテスト:比較障害
- 15. NSURLSession background download - ネットワーク障害で再開
- 16. SVNリポジトリサーバの障害時の移行
- 17. ワンセグ障害やって、次のコードは、最後の行にワンセグ障害を取得<string>
- 18. C++で実行した後のテンプレート化されたクラスの障害11
- 19. apns-ポート接続障害
- 20. モバイルエミュレータ接続障害(マージレプリケーション)
- 21. ネットワーク障害による切断イベントの接続の再接続 - Socket.io
- 22. C#MVC経路障害後の経路を継続する
- 23. 実行時に障害が検出されましたか?
- 24. ColdFusionのPayPalのIPNは、接続障害
- 25. Javaのmysqlの接続リンク障害
- 26. MySQLのJDBC接続障害エラー
- 27. LCPネゴシエーション中のGPRS PPP接続障害
- 28. のNeo4j用WebSocket接続障害
- 29. 支払い後にpaypal Express Checkoutでネットワーク障害を処理する方法は?
- 30. CALayerの障害?