JUnit、TestNG、およびSpringテストには、拡張メカニズムとしてテスト実行リスナーがあります。テスト実行リスナーは、フレームワーク開発者やツール開発者にとって関心のある低レベルの機能のようです。
テスト実行リスナーが役立つ主なユースケースは何ですか?それらはアプリケーション開発者に役立ちますか?
testngの場合、listnersは私にとって最も注目に値するものです。testNgリスターを使用すると、テストメソッドの内容を単純化し、サーバーの起動、ユーザー登録、テストに必要なアーティファクトの入力を使用して各テストを管理できます。また、各テストサイクルの環境をクリーンアップします。
各リスナーレベルで次の操作を実行しているので、テストの傍らでそれらについて気にする必要はありません
IExecutionListener
- onExecutionStart()
Emma instrumentations
Server start
- onExecutionFinish()
Server Sutdown
Emma report generation
ISuiteListener 設定環境プロパティex-キーストアパス
Populate Users.
ITestListener
開始時
Artifact Deployment
終了時
Artifact Clean up
IReporter
TestNgレポートの生成、確実なレポートの生成、ダッシュボードのデータのエクスポート
JUnitの場合、リスナーはレポートの方法として設計されており、内部的にはこのように使用されます。したがって、実行されたテストの数、成功、失敗、エラーなどを表示できます。これは、 maven-surefireなどの外部でも使用されます。例として、 JUnit4RunListener.javaを参照してください。
別の用途は、XMLなどの別の形式で出力することです。他のフレームワークの主なユースケースは同じだと思います。
JUnitでは、リスナークラスは、Dharshanaがtestngでテストリスナーを使用する方法、つまりセットアップ/ティアダウンとして使用されることを意図していません。リスナーで使用されるオブジェクト(Description、Failure、Result)は不変であり、テストクラス自体への直接アクセスを推奨しません。TestNGについてはよくわかりませんが、Cedricの方がいいでしょう。
それらはアプリケーション開発者にとって有用ですか?テストの設定方法によっては、そうなる可能性があります。これらはテストのコンテキストでのみ使用されるため、改善できる場合は、先に進んで使用してください。1つのユースケースは、JavaDocを使用したJUnitテストレポートの強化です。私の回答を参照してください。答えを要約すると、開発者が特定のバグのテストを追加した場合、そのテストに注釈を追加して、バグにリンクすることができます。カスタムRunListenerがあり、注釈内のすべての情報をまとめて収集し、最終的な顧客向けのレポートを作成します。