2011-12-12 2 views
16

मैं टेस्टएनजी का उपयोग कर रहा हूं और परीक्षणों का एक सूट हूं। मैं प्रत्येक टेस्ट विधि से पहले एक क्रिया करना चाहता हूं जिसके लिए विधि के बारे में जानकारी की आवश्यकता है। एक साधारण उदाहरण के रूप में, कहें कि मैं इसे निष्पादित करने से पहले विधि के नाम को मुद्रित करना चाहता हूं। मैं @BeforeMethod के साथ एनोटेटेड विधि लिख सकता हूं। मैं उस विधि में पैरामीटर कैसे इंजेक्ट कर सकता हूं?क्या टेस्टएनजी में @BeforeMethod का उपयोग करते समय विधि मेटा डेटा प्राप्त करने का कोई तरीका है?

उत्तर

13

प्रलेखन में dependency injection अनुभाग पर एक नज़र डालें। यह कहा गया है कि निर्भरता इंजेक्शन इस मामले में उदाहरण के लिए इस्तेमाल किया जा सकता:

किसी भी @BeforeMethod (और @AfterMethod) प्रकार java.lang.reflect.Method की एक पैरामीटर घोषणा कर सकते हैं। इस पैरामीटर को टेस्ट विधि प्राप्त होगी जिसे एक बार यह @BeforeMethod खत्म हो जाएगा (या @AfterMethod के लिए चलने वाली विधि के बाद)।

तो बुनियादी तौर पर आप बस अपने @BeforeMethod में टाइप java.lang.reflect.Method की एक पैरामीटर घोषित करने के लिए है और आप निम्न परीक्षण नाम के नाम के लिए उपयोग होगा। कुछ की तरह:

@BeforeMethod 
protected void startTest(Method method) throws Exception { 
    String testName = method.getName(); 
    System.out.println("Executing test: " + testName); 
} 

वहाँ भी ITestNGMethod इंटरफेस (documentation) का उपयोग कर एक तरह से है, लेकिन जैसा कि मैंने वास्तव में यह कैसे उपयोग करने पर यकीन नहीं है, मैं सिर्फ आप इसे पर एक नजर है दूँगा अगर आप दिलचस्पी है

+0

मैं अपने testcase डेटा अनेक डाटासेट के साथ प्रदान करते हैं ताकि हद रिपोर्ट में यह एक ही विधि का उपयोग कर दिखा रहा है चल रहा हूँ अपने में विधि नाम और वर्ग के नाम प्राप्त कर सकते हैं एक्सेल शीट में हमारे पास कितने समय के साथ कई बार चल रहा है, इसलिए मैं टेस्टकेस नाम को एक चर के रूप में (एक्सेल में है) को एबस्ट्रेटबेसस्टेस क्लास में पहले की विधि से पास करना चाहता हूं, क्या यह हासिल करने का कोई तरीका है ?? –

1

उदाहरण नीचे बताते हैं कि कैसे आप विधि

से पहले
@BeforeMethod 
     public void beforemethod(Method method){ 
//if you want to get the class name in before method 
     String classname = getClass().getSimpleName(); 
//IF you want to get the method name in the before method 
     String methodName = method.getName()  
     } 

@Test 
public void exampleTest(){ 


} 
संबंधित मुद्दे

 संबंधित मुद्दे