ReporterとListener
出来事
・テスト自動化ツールを改善した
特記事項
・成功/失敗したテストケースの判別
キーワード駆動テスト特有の課題である。
TestNGのテストランナーが同一のテストメソッドを実行するように実装している。(少なくとも私のツールの場合は)この為、テストケースを複数回実行するとどれが成功/失敗したのかがレポートでは分からなくなる。
この対策としてTestNGには、レポート機能を利用する。
・ReporterとListener
Reporterは@Testを付加したメソッド内で有効になる機能である。
@Test内で実装すると、「Reporter Output」をクリックしたときに右側に表示される「Reporter output for テストスイート」に@Testを付加したメソッドとReporter.log(String hogehoge)のhogehogeを出力することが出来る。
テストケース名の重複を許さないような実装にしておけば、どのテストケースが失敗したかはすぐに特定できるようになる。
Listenerに関しても同様のことが出来る。テスト起動時や終了時等、イベントを拾うメソッドをオーバーライドして利用する。
・ツールの設計の必要性
レポート機能は私がTestNGを使い始めたきっかけでもある。こんなところで生きてくるとは思わなかった。
どのようなツールが必要で、そのツールを構成するにはどんな要素が必要か、考える必要があると思う。
今回のツールの目的はマスタ登録後の登録ミスを検知する為のものである。
この流れの中で登場する人物は以下の通り
マスタを登録・修正する人
テスト設計する人
テスト実装する人
テスト実行する人
テスト結果を検査する人