2013-05-16 2 views
1

Eclipse App을 사용하여 Android 앱을 테스트하고 있습니다. 그러나 테스트 스위트를 한 번 실행하면 에뮬레이터에 앱이 설치됩니다. 앱이 에뮬레이터에 이미 설치된 경우 (일부 저장된 데이터로 인해) 테스트가 다음 번에 실패하기 때문에 에뮬레이터에서 제거해야합니다.Android 기기 테스트를 실행 한 후 에뮬레이터에서 앱을 자동으로 제거 할 수 있습니다.

테스트 스위트를 실행할 때마다 깨끗한 에뮬레이터를 시작하는 방법을 찾으려고했지만 지금까지 행운이 없습니다.

제안 사항?

감사합니다.

나는 Robotium 패키지를 사용하고 있습니다.

+0

[테스트시 응용 프로그램 제거] (http://stackoverflow.com/questions/8389465/uninstall-application-when-testing)이이 파일을 발견했습니다. 그러나, 내 테스트 클래스의 tearDown() 메서드 안에 코드를 넣을 때, 프로세스는 항상 프로세스 크래시로 인해 실패합니다. 이견있는 사람? – hqfking

답변

1

빠른 솔루션 :

adb -e uninstall your.test.package.name 

클리너 솔루션 :

백업 알려진 좋은 userdata-qemu.img 에뮬레이터 디스크 이미지

새로운 테스트 실행을위한 에뮬레이터를 실행하기 전에 복원.

+0

어디서 adb 명령을 사용해야합니까? 테스트 스위트 내에서이 프로세스를 수행하려고합니다. – hqfking

+0

이것은 호스트 OS 쉘 세션에서 에뮬레이터의 외부에 있습니다. 마찬가지로 호스트 OS 쪽에서 만 디스크 이미지에 액세스 할 수 있습니다. – laalto

0

아니요, 방법이 없습니다.

  • 이동이
  • 메뉴 버튼을 누르면 응용 프로그램을 볼 수있는 메뉴로,
  • 그것은 물어볼 것입니다 귀하의 응용 프로그램을 클릭
  • 을 "앱 관리"를 클릭 :하지만 그것을 제거하는 쉬운 방법이있다 당신이 정말로 그것을 제거하려는 경우
  • "예"또는 "제거"버튼을 클릭하십시오. 모든 데이터와 함께 제거됩니다.

희망이 도움이됩니다.

+0

앱을 수동으로 제거하지 않으려합니다. 감사. – hqfking

0

데이터가 SQLite 데이터베이스에있는 경우 데이터베이스 버전을 실제 버전보다 높은 버전으로 변경할 수 있습니다.

private static final int DATABASE_VERSION = 2; //in the class that extends SQLiteOpenHelper 

그러면 onUpgrade 함수가 호출되므로 테이블을 삭제하고 다시 만들 수 있습니다.

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    //erase table 
    db.execSQL("DROP TABLE IF EXISTS " + MY_TABLE); 
    //create again 
    onCreate(db); 
} 

SQLite를 사용하지 않는 경우 파일을 덮어 씁니다.

0

앱 데이터에 문제가있는 경우 제거를 수행하는 대신 앱 데이터를 지울 수 있습니다. 이 link 도움이됩니다.