2013-06-21 18 views
5

Chcę uzyskać nazwę aktualnie wykonywanej metody TestCase w metodzie @ Beg. PrzykładPobierz nazwę aktualnie wykonywanej metody @Test w @Before w 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-executing-test-in-junit-4? – ivarni

+0

dodaj pole 'previousName' w klasie testowej i ustaw jego wartość na końcu każdej metody testu za pomocą opcji Po – TecHunter

Odpowiedz

16

Jak omówiono here, spróbuj @Rule i TestName kombinację.

Zgodnie z metodą documentation metoda powinna mieć nazwę testu.

Opisuje pola zawierające reguły. Takie pole musi być publiczne, a nie statyczne i podtypem TestRule. Przekazany do TestRule komunikat będą uruchamiać wszystkie powyżej metod, a następnie metodą testową, a końcu dowolny po metod wyrzucanie wyjątek, jeżeli którekolwiek z nich nie

Tu w przypadku badania z użyciem 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

Spróbuj użyć @Rule adnotacji z org.junit.rules.TestName klasy

@Rule public TestName name = new TestName(); 

@Test 
public void test() { 
    assertEquals("test", name.getMethodName()); 
} 
Powiązane problemy