2013-06-21 8 views
5

Ich möchte den Namen der aktuell ausgeführten TestCase Methode in @Before Methode erhalten. BeispielErhalte den Namen der aktuell ausgeführten @Test Methode in @Before in JUNIT

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 tly-Ausführen-Test-in-Junit-4? – ivarni

+0

fügen Sie ein Feld 'previousName' in Ihrer Testklasse hinzu und setzen Sie den Wert am Ende jeder Testmethode mit After – TecHunter

Antwort

16

Wie here diskutiert, versuchen @Rule und Testname Kombination.

Nach der documentation vor Methode sollte Testname haben.

Kommentiert Felder, die Regeln enthalten. Ein solches Feld muss öffentlich sein, nicht statisch, und ein Untertyp von TestRule. Die Erklärung zum TestRule weitergegeben wird jede Bevor Methoden laufen, dann die Testmethode und schließlich jeder nach Methoden, eine Ausnahme zu werfen, wenn einer dieser

scheitern

Hier ist der Testfall ist mit 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

Versuchen Sie, eine @Rule Annotation mit org.junit.rules.TestName-Klasse

@Rule public TestName name = new TestName(); 

@Test 
public void test() { 
    assertEquals("test", name.getMethodName()); 
} 
Verwandte Themen