2011-11-21 2 views
0

ActivityInstrumentationTestCase2를 확장하는 약 20 개의 메소드 (테스트 케이스)가있는 테스트 케이스 파일이 하나 있습니다. 나는 내가 JUnit을 알고있는 방법을 받아들이는 방법은 안드로이드 robotium에 물건을 할 수있는 유사한 방법이 있나요robotium의 테스트 슈트 문제

suite.addTest(new AllTestCases("testcase1")); 

가 실행하는 것입니다 만 테스트 케이스 방법을 선택 호출하는 스위트를 작성해야? 그렇다면이 문제를 해결할 수있는 방법을 알려주십시오. 감사.

답변

1

모든 Android 관련 테스트 클래스가 AndroidTestCase 또는 InstrumentationTestCase에서 상속되기 때문에 new AllTestCases("testcase1");과 같이 전화를 걸 수는 없으며 이러한 클래스 중 하나도 문자열을 인수로 사용하는 생성자를 노출하지 않습니다.

android.test.suitebuilder.TestSuiteBuilder을 살펴볼 수도 있지만이 클래스조차도 개별 테스트 메소드 실행을 허용하지 않으며 패키지 수준에서 테스트를 허용합니다.

같은 @SmallTest@MediumTest@LargeTest 등이 당신이 follwing을 명령을 사용하여 반드시 지정된 주석 방법을 대상으로 할 수 있습니다 당신은 안드로이드 테스트 주석을 사용하여 목표를 달성 약간의 행운이있을 수 있습니다 :

adb shell am instrument -w -e size <small|medium|large> com.youproject.test/android.test.InstrumentationTestRunner 

을 마지막으로, 가능한 개별 테스트 메서드 또는 클래스를 직접 일식에서 타겟팅 할 수 있습니다.

0

"adb shell am instrument"명령에 대한 "-e"인수를 사용하여 프로그래밍 방식으로 개별 테스트 케이스를 실행할 수 있습니다. 예를 들어 'com.foo.bar.FooTest'의 'testFoo()'메소드를 실행하면 다음을 실행할 수 있습니다.

adb 쉘 악기 -w \ -e "class com.foo.bar.FooTest # testFoo "\ com.foo.bar.test/android.test.InstrumentationTestRunner

http://developer.android.com/guide/developing/testing/testing_otheride.html

1

는 명령 줄에서 직접 개별 테스트 케이스를 실행하려면 :

adb shell am instrument -w -e class < 테스트 클래스-뿐인데 패키지 이름># < 테스트 - 방법 - 이름> < 패키지 - 이름 - 오브 - 테스트 - 앱>/ < 계측 - 이름 - 정의 -에 - 매니페스트>

예 :

adb shell am instrument -w -e class com.myapp.test.ActivityFragmentTest#testLogin com.myapp.test/android.test.InstrumentationTestRunner