2013-06-21 9 views
5

@Beforeメソッドで現在実行中のTestCaseメソッドの名前を取得します。 例JUNITの@Beforeで現在実行中の@Testメソッドの名前を取得します。

public class SampleTest() 
{ 
    @Before 
    public void setUp() 
    { 
     //get name of method here 
    } 

    @Test 
    public void exampleTest() 
    { 
     //Some code here. 
    } 
} 
+0

http://stackoverflow.com/questions/473401/get-name-of-currenテスト実行中のJUNIT-4? – ivarni

+0

テストクラスに 'previousName'フィールドを追加し、各テストメソッドの最後にその値をAfter – TecHunter

答えて

16

としてはhereを論じ、@Ruleとテスト名の組み合わせを使用してみてください。

documentationの前に、メソッドはテスト名を持つ必要があります。

ルールを含むフィールドに注釈を付けます。そのようなフィールドは、 staticではなく、TestRuleのサブタイプではなく、パブリックでなければなりません。 TestRuleは、その後、試験方法、メソッドの前にいずれかを実行し、メソッドの後、最終的 いかなる、これらのいずれかがここで

を失敗した場合に例外をスローします に渡された声明では、JUnitの4.9

を使用してテストケースであります
public class JUnitTest { 

    @Rule public TestName testName = new TestName(); 

    @Before 
    public void before() { 
     System.out.println(testName.getMethodName()); 
    } 

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

org.junit.rules.TestNameクラスで@Ruleのアノテーションを使用してみてください

@Rule public TestName name = new TestName(); 

@Test 
public void test() { 
    assertEquals("test", name.getMethodName()); 
} 
関連する問題