2013-06-21 2 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' 필드를 추가하고 각 테스트 메소드의 끝에 값을 설정합니다. – TecHunter

답변

16

있듯이 here 논의 @Rule TESTNAME 및 조합을 이용하여 시도.

이전에 documentation에 따라 테스트 이름이 있어야합니다.

규칙을 포함하는 필드를 주석으로 처리합니다. 이러한 필드는 public이어야하며 static이 아니고 TestRule의 하위 유형이어야합니다. 이 중 하나가 여기에

Junit와 4.9을 사용하여 테스트 케이스입니다 실패 할 경우 TestRule에 전달 된 문은 예외를 던지는 방법, 다음 시험 방법 전에를 실행하고 마지막으로 어떤 방법 후 것
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()); 
} 
관련 문제