मैं समूह के साथ @BeforeMethod
के उपयोग के बारे में सोच रहा हूं। http://testng.org/javadoc/org/testng/annotations/BeforeMethod.html में यह कहते हैं:समूह के साथ TestNG पहले विधि
alwaysRun: अगर सही पर सेट, इस विन्यास विधि परवाह किए बिना क्या समूहों यह के अंतर्गत आता है की नहीं की जाएगी।
public class BeforeTest { private static final Logger LOG = Logger.getLogger(BeforeTest.class); @BeforeMethod(groups = {"g1"}, alwaysRun = false) public void setUpG1(){ sleep(); LOG.info("BeforeMethod G1"); } @Test(groups = {"g1"}) public void g1Test(){ sleep(); LOG.info("g1Test()"); } @BeforeMethod(groups = {"g2"}, alwaysRun = false) public void setUpG2(){ sleep(); LOG.info("BeforeMethod G2"); } @Test(groups = {"g2"}) public void g2Test(){ sleep(); LOG.info("g2Test()"); } private void sleep(){ try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } } }
कौन सा आउटपुट:
तो मैं निम्नलिखित वर्ग है
BeforeMethod G1
BeforeMethod G2
g1Test()
BeforeMethod G1
BeforeMethod G2
g2Test()
एक तरफ
तथ्य मुझे लगता है कि awaysRun डिफ़ॉल्ट रूप से गलत है, किसी को भी क्यों दोनों से पहले मुझे समझा सकते हैं समूहों को अनदेखा करते हुए प्रत्येक परीक्षण से पहले विधियों को बुलाया जाता है? @Test की तरह कुछ (skipBeforeMethod = "setUpG1") भी काम करेगा।
मैं इंटेलिजे आईडीईए सीई 10.5.2 का उपयोग कर रहा हूं। मैंने इसे 1.0-मील का पत्थर -3 के साथ भी चलाया है।
मैं कोई नहीं चलाता, सोचा समूह समूह एक प्रकार का फ़िल्टरिंग है ताकि एक निश्चित समूह के साथ पहले विधि केवल उसी समूह के साथ परीक्षणों पर लागू हो। मुझे लगता है कि मैं गलत था। मुझे जो करना है वह आपके समाधान की तरह कुछ है (http://stackoverflow.com/questions/3115822/passing-output-of-one-test-method-to-another-method-testng), लेकिन उस समस्या समाधान यह है कि f1 के आधार पर कई परीक्षण होने पर mResult को रीसेट नहीं किया जाता है। – rweng