2017-11-16 3 views
4

私はJava(TestNGとIntelliJ)を使用してSeleniumテストを実行しています。現在、私のレポーティングフレームワークに取り組んでいます。 私のテストのセットアップは次のようになります。呼び出されたメソッドからtestngテストの名前を書くことはできますか?

@Test 
public void testLogin(){ 
    myKeyword.login(); 
} 

myKeywordは、メソッドと呼ばれる、ログインして、私が作成したキーワードのクラスです。ログインキーワードは次のようになります:

public void login(){ 
    myPage.typeInTextBox("Username"); 
    myPage.typeInTextBox("Password"); 
    myPage.buttonClick("Login"); 
} 

私の検証は、 "buttonClick"と "typeInTextBox"メソッドに組み込まれています。

try{ 
    driver.findelement(By.id("myButton")).click(); 
} 
catch (Exception e){ 
    Assert.fail("Could not click on the button."); 
} 

私は何であるかを知りたい、それはそれを呼び出すのテストの名前を知っている「buttonClick」方法が可能です:彼らは次のようになりますか?

「Assert.fail ...」を、私が望む情報を記録するために使用するテキストファイルを作成する独自の関数に置き換えたい場合、失敗したテストの名前を含める必要があります(この場合の「TESTLOGIN)。

+0

スタックトレースあなたの例外からですか? –

+0

私は例外がありません。それは私のコードから抜粋したものですが、私はまだthを渡す方法を理解しようとしていますテスト名をメソッド "buttonClick"にラフします。 – ChrisG29

答えて

3

一つのオプション静的変数に多分、どこかに現在のテストの名前を設定することです。TestNGのためにそれを行う方法hereを説明した。

public class Test { 
    @BeforeMethod 
    public void handleTestMethodName(java.lang.reflect.Method method) { 
     GlobalVariables.currentTestName = method.getName(); 
    } 
... 
} 
+0

ありがとう、私はちょうど同じ質問とドミトリーからの答えを見ていた。あなたのソリューションはまさに私が探していたものです。 – ChrisG29

+0

素晴らしい仕事(+1) – DebanjanB

関連する問題