2011-12-13 13 views
5

मैं रोबोटियम और गतिविधिInstrumentationTestCase2 का उपयोग कर एंड्रॉइड के लिए UIAutomation चला रहा हूँ। मेरे पास 5 टेस्ट के साथ एक टेस्ट सूट है। कभी-कभी मेरा परीक्षण यादृच्छिक रूप से दुर्घटनाग्रस्त हो जाता है क्योंकि एक परीक्षण शुरू होता है, एक बार पिछला परीक्षण अभी तक समाप्त नहीं हुआ है। क्या इससे बचने का कोई तरीका है? क्या इस भयानक कष्टप्रद बग से दूर होने के लिए हर टेस्ट से पहले 10 सेकंड की देरी को मैन्युअल रूप से जोड़ना संभव है?एंड्रॉइड परीक्षण - ActivityInstrumentationTestCase2 के साथ समस्या?

संपादित करें:

public class MyTest<T extends RoboActivity> extends ActivityInstrumentationTestCase2<T> 
{ 

    protected Solo solo; 

    @Override 
    protected void setUp() throws Exception { 
     super.setUp(); 
     solo = new Solo(getInstrumentation(), getActivity()); 
    } 

    @Override 
    protected void tearDown() throws Exception { 
     solo.finishOpenedActivities(); 

     try { 
      solo.finalize(); 
     } 
     catch (Throwable e) { 
      Assert.fail(e.getMessage()+ e.toString()); 
      e.printStackTrace(); 
     } 

     super.tearDown(); 
    } 
} 
+0

यह बहुत अजीब लगता है, आप पोस्ट कर सकते हैं की तुलना में बेहतर आपके परीक्षणों का कोड? – gianpi

उत्तर

0

मेरे परीक्षण के निर्माण, टियरडाउन, आदि थोड़े अलग हैं और अच्छी तरह से काम करता है (नीचे देखें)। मुझे कुछ गैर-निर्धारिती परीक्षण-असफलताओं के आसपास काम करने के लिए नींद जोड़नी पड़ी।

public class AccountDetailTest extends ActivityInstrumentationTestCase2<AccountDetail> { 

private Solo solo; 

public AccountDetailTest() { 
    super("com.bigcorp.breadmaker", AccountDetail.class); 
} 

@Override 
public void setUp() { 
    solo = new Solo(getInstrumentation(), getActivity()); 
    solo.sleep(500); //wait for activity to initialize 
} 

@SmallTest 
public void testDummy() { 
    assertNotNull(solo); 
} 

@Override 
public void tearDown() throws Exception { 
    solo.finishOpenedActivities(); 
} 
}