2011-12-13 3 views
5

RobotiumとActivityInstrumentationTestCase2を使用してアンドロイド用のUIAutomationを実行しています。私は5つのテストでテストスイートを持っています。 以前のテストがまだ終了していないと、テストが開始されるため、私のテストがランダムにクラッシュすることがあります。 これを回避する方法はありますか?この恐ろしい迷惑なバグから逃れるために、すべてのテストの前に手動で10秒の遅延を追加することは可能ですか?Androidテスト - ActivityInstrumentationTestCase2に関する問題?

EDIT:

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(); 
} 
}