2017-02-07 21 views
0

TestNGSeleniumを使用しています。その中で、私は@AfterMethod@Test注釈を使用しています。メソッド名の取得方法は?

@AfterMethodを使用した方法では、@Testのメソッド名が必要です。 EXのために

@TEST注釈変数のメソッド名のためにここで

@Test 
public void testmethod() { 
    System.out.println("test"); 
} 

@AfterMethod 
public void aftermethod() { 
    String methodnameofTESTANnnoation=....? 
    System.out.println([email protected]); 
} 

、私はのtestMethodすなわち@Test注釈メソッドの名前を必要とします。

+0

は値を返すに問題があるのでしょうか? testmethodをpublicにします。testmethod()を呼び出し、return( "testmethod")を追加してからtry Stringを実行します。methodnameofTESTANnnoation = testmethod(); – ReadyFreddy

+1

@shmosel質問はtestngに関するものです。これをチェックするためには、testngのために - http://stackoverflow.com/questions/2952202/how-do-i-get-the-name-of-the-test-method-that-was-run-in-a-testng-ティアダウン - メタノード= 1&lq = 1 – Grasshopper

+0

@グラスホッパーグッドキャッチ。あなたのリンクは完璧な複製物のように見えます。 – shmosel

答えて

1

TestNGは設定方法にMethodリファレンスを注入できます。 the documentationから :

任意@BeforeMethod(及び@AfterMethod)はタイプ java.lang.reflect.Methodオブジェクトのパラメータを宣言することができます。このパラメータは、この@BeforeMethodが終了すると(または@AfterMethodのメソッドとして メソッドが実行された後に)呼び出されるテストメソッド を受け取ります。

だから、あなたのサンプルで:

@Test 
public void testmethod(){ 
    System.out.println("test"); 
} 

@AfterMethod 
public void aftermethod(Method m){ 
    String methodNameOfTest = m.getName(); 
    System.out.println(methodNameOfTest); 
} 
+0

ありがとうございます。それが働いています... – Sandeep

+0

@Sandeep次に、答えを受け入れる;) – juherr

関連する問題