में प्रत्येक '@After' से पहले मेरे पास एक टेस्ट सूट है जहां मैं @After
में सिस्टम से लॉग आउट कर रहा हूं और ब्राउज़र को @AfterClass
में बंद कर रहा हूं। मैं प्रत्येक परीक्षण विधि के लिए सेलेनियम का उपयोग कर असफल परीक्षण स्क्रीनशॉट लेने के लिए @Rule
का उपयोग करने का प्रयास कर रहा हूं। मैंने मैन्युअल रूप से जांच की है कि @Rule
केवल @Before
से पहले चलता है लेकिन मैं @Test
और @After
से पहले इसे सेट करना चाहता हूं। मुझे सरल समाधान नहीं मिला। किसी भी तरह की सहायता को आभार समझेंगे।प्रत्येक '@Test' के बाद '@Rule' लागू करें और JUnit
public class MorgatgeCalculatorTest {
@Before
public void before(){
System.out.println("I am before");
}
@BeforeClass
public static void beforeclass(){
System.out.println("I am beforeclass");
}
@Test
public void test(){
System.out.println("I am Test");
}
@Test
public void test2(){
System.out.println("I am Test2");
}
@After
public void after(){
System.out.println("I am after");
}
@AfterClass
public static void afterclass(){
System.out.println("I am afterclass");
}
@Rule
ExpensiveExternalResource ExpensiveExternalResource = new ExpensiveExternalResource();
static class ExpensiveExternalResource implements MethodRule {
public ExpensiveExternalResource(){
System.out.println("I am rule");
}
@Override
public Statement apply(Statement arg0, FrameworkMethod arg1, Object arg2) {
// TODO Auto-generated method stub
return null;
}
}
उत्पादन मैं हो रही है
I am beforeclass
I am rule
I am before
I am Test
I am after
I am rule
I am before
I am Test2
I am after
I am afterclass
मैंने बताया कि केवल एक परीक्षण विफल होने पर ही मैं केवल स्क्रीन शॉट लेना चाहता हूं। प्रत्येक परीक्षण के लिए नहीं: डी –
मजेदार। मुझे केवल आदेश में दिलचस्पी थी, इसलिए वास्तव में आपका प्रश्न मेरा जवाब था :) –
@ गैबरलिप्टाक :) मुझे खुशी है! –