2013-06-21 5 views
5

में @Test विधि को निष्पादित करने का नाम प्राप्त करें, मैं वर्तमान में @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 tly-execing-test-in-junit-4? – ivarni

+0

अपनी टेस्ट क्लास में फ़ील्ड 'पिछला नाम' जोड़ें और उसके बाद प्रत्येक टेस्ट विधि के अंत में अपना मान सेट करें – TecHunter

उत्तर

16

जैसा कि बताया जा here, @Rule और TestName संयोजन का उपयोग कर प्रयास करें।

विधि से पहले टेस्ट नाम होने से पहले documentation के अनुसार।

नियमों वाले क्षेत्रों को एनोटेट करता है। ऐसा क्षेत्र सार्वजनिक होना चाहिए, स्थैतिक नहीं, और टेस्टरूल का एक उप प्रकार होना चाहिए। वक्तव्य 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()); 
} 
संबंधित मुद्दे