2011-04-18 87 views
3

我想寫一個在我的應用程序中執行工作流程的測試。然而;我需要將我的測試分成兩部分。該場景是這樣的:如何在測試結束時保持活動運行?

我開始我的應用程序,然後啓動一個圖庫選擇一個圖像,然後返回到我的應用程序繼續工作流程。

我遇到的問題是我無法在圖庫中自動執行動作,所以這需要一些手動操作。所以我的計劃是自動化第一部分,即啓動我的應用程序,然後啓動Gallery,然後手動選擇一個圖像,然後運行我的自動化測試的第二部分。

的問題是在第一自動化部件的端部,即使我不這樣做一個拆卸步驟並調用activity.finish()

活性被關閉我已經包括的代碼I」的一個例子使用。所以,如果你能指出我在這裏做錯了什麼,那將是非常棒的。我應該提到我正在使用Robotium來實現自動化。

package com.myapp.android.testWithAPK; 
import com.jayway.android.robotium.solo.Solo; 
import android.test.ActivityInstrumentationTestCase2; 
public class MyTest extends ActivityInstrumentationTestCase2 { 
     private static final String TARGET_PACKAGE_ID = "com.myapp.android"; 
     private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = 
"com.myapp.android.ui.Main"; 
     private static Class<?> launcherActivityClass; 
     static { 
       try { 
         launcherActivityClass = Class 
             .forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME); 
       } catch (ClassNotFoundException e) { 
         throw new RuntimeException(e); 
       } 
     } 
     @SuppressWarnings("unchecked") 
     public MyTest() throws ClassNotFoundException { 
       super(launcherActivityClass); 
     } 
     private Solo solo; 
     @Override 
     protected void setUp() throws Exception { 
       solo = new Solo(getInstrumentation()); 
     } 
     public void testCreatePostCard() throws InterruptedException{ 
       solo.clickOnText("Make a postcard"); 
       solo.clickOnText("Choose photo"); 

回答

0

我猜一點,因爲你的代碼被切斷,但我相信你在做什麼,正在運行一個測試,然後做手動工序,然後(通過另一個ADB命令)運行第二次測試,對嗎?如果是這樣,這將是你每次開始新測試時都會遇到的問題,它會將你的應用程序的舊活動GC刪除。解決這個問題的方法是創建一個測試,在測試中間稍微等待測試的下一部分處於正確狀態時執行這兩個部分,測試的方法只是使用睡眠命令幾秒鐘,如果這樣做可以通過在等待部分中等待應用程序返回到的屏幕上出現一個元素,使代碼更好。

相關問題