2016-04-27 12 views
0

testNgでJavaでSelenium WebDriverテストを開発しています。私は、ブラウザを起動し、ログインページにナビゲートし、私をログインさせる基本クラスを持っています。これを基本クラスで行うメソッドは、@BeforeTestと注釈が付けられています。すべての私のテストクラスは、この基本クラスを拡張します。TestNGテストの@BeforeTest注釈からセットアップログ情報を表示

Reporter.log("...")コールを@BeforeTest注釈付きのメソッドに含めて、最初のログインが成功したことを記録しました。しかし、この出力のどれも出力ファイルには現れません。

質問:@BeforeTest注釈付きメソッドの出力を出力ファイルに含めるにはどうすればよいですか?

答えて

0

私が考えることができる唯一の方法は、(セットアップ中の)データプロバイダ内の情報の文字列を生成し、Object []パラメータを使用して@Testメソッドにログ情報の文字列を渡すことです(オプションのTestNG方法および/または@Testの方法)。次に、あなたの@BeforeTestメソッドはその文字列にアクセスし、Reporter.logを使用してそれを印刷することができます。

つまり、テストで出力を表示する@Configurationメソッドを得ることはできませんが(私の思うように設計されていますが)、DataProvider内の何かを@Testメソッドに渡すことができます。 @設定方法の前に。

もう1つの方法は、ログ情報を保持するテストクラスにString変数を保持することです。セットアップ中にセットアップ情報をその文字列に保存してから@Testメソッドの実行中にアクセスし、Reporter.log(string, true);を使用してテスト出力に出力します。

これは、私があなたがしてはいけないと言っている環境的な回避策にすぎません。テストログの出力にセットアップ情報を表示する必要があると本当に思っているなら、おそらくあなたがそれをする必要があると考える理由を考えてみることをお勧めします。

関連する問題