मैं "वर्तमान" नामक काम करने के लिए प्रासंगिक परीक्षणों का सबसेट चलाने के लिए समूह का उपयोग करने का प्रयास कर रहा हूं। समस्या यह है कि यदि मैं @BeforeMethod में कुछ सेटअप करने के लिए सुपरक्लास का उपयोग करता हूं, तो जब मैं सभी परीक्षण चलाता हूं तो विधि चलती है, लेकिन जब मैं केवल "वर्तमान" समूह के साथ नहीं चलता हूं।TestNG @BeforeMethod विधि को सुपरक्लास में रहने पर नहीं कहा जाता है और एक विशिष्ट समूह चलाया जाता है
तो जब मैं सभी परीक्षण चलाता हूं, तो खाली टेस्ट विफल रहता है क्योंकि @BeforeMethod को कॉल किया जाता है, जब केवल समूह चालू होता है, विधि को नहीं कहा जाता है। नोट: यदि मैं उप-वर्ग में @ टेस्ट (समूह = {"वर्तमान"}) जोड़ता हूं, तो यह चलता है - हालांकि, यह सभी उप-वर्गों को चलाता है जो "वर्तमान" के साथ लेबल नहीं होते हैं, जो "वर्तमान" समूह के उद्देश्य को हरा देता है ।
यदि इस व्यवहार को पूरा करने का एक बेहतर तरीका है, तो मैं सभी समाधानों के लिए खुला हूं।
धन्यवाद, Ransom
सुपर क्लास:
public class TestNGSuperclass {
@BeforeMethod
public void failingToShowThatItIsNotRun() {
Assert.fail();
}
}
उपवर्ग:
@Test(groups = {"current"})
public class TestNGCurrentGroup extends TestNGSuperclass {
public void emptyTest() {}
}
TestNG विन्यास:
<test name="current">
<groups>
<run>
<include name="current"/>
</run>
</groups>
<packages>
<package name="uiowa.wf.test.*"/>
</packages>
</test>
<test name="all-tests">
<packages>
<package name="uiowa.wf.test.*"/>
</packages>
</test>
धन्यवाद, मेरे पहले मोड में "alwaysRun = true" जोड़ना और AfterMethod ने समस्या हल की। –