2012-03-13 3 views
3

나는 내 Android 애플리케이션을 테스트하기 위해 robotium을 사용 해왔다. 지금까지 매우 유용한 도구였습니다. 최근에 우리는 전체 애플리케이션에서 하나의 액티비티만을 사용하는 리팩토링을 수행했으며, 각 페이지는 조각으로 대체 될 것입니다.Robotium 테스트에서 액티비티 클래스를 찾을 수 없습니다

그러나 단위 테스트를 실행하기 위해 해당 활동을 사용하기 시작한 후 테스트에서 NoClassDefound 오류가 발생합니다. 활동 클래스를 찾을 수 없습니다. 나는 아무데도 내가 구성을 바꾸는 것을 전혀 보지 못한다.

아무에게도 무엇이 잘못 될 수 있는지 실마리를 줄 수 있습니까?

[INFO]  java.lang.RuntimeException: Exception during suite construction 
at android.test.suitebuilder.TestSuiteBuilder$FailedToCreateTests.testSuiteConstructionFailed(T estSuiteBuilder.java:239) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169) 
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154) 
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:529) 
.... 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.NoClassDefFoundError: com.xxx.wallet.HaloActivity 
at com.xxx.wallet.HaloActivityTest.<init>(HaloActivityTest.java:12) 
... 18 more 

app apk가로드되고 AndroidManifest.xml도 정상이어야합니다.

+0

manifest.xml을 갖는 것이 도움이됩니다. 그것을 추가 할 수 있습니까? – BlackHatSamurai

답변

0

만들기 sureafter 리팩토링 :

테스트 프로젝트의 AndroidManifest.xml에 여전히 정확 : 응용 프로그램의

public class YourTest extends ActivityInstrumentationTestCase2<SplashScreenActivity> { 
    protected static final String TARGET_PACKAGE_ID = "package.of.the.app.under.test"; 

    protected Solo solo; 
    public Test() { 
     super(TARGET_PACKAGE_ID, StartingActivityOfYourAppUnderTest.class); 
    } 
    //.. 
} 

모든 라이브러리 :

<instrumentation android:targetPackage="package.of.the.app.under.test"> 

테스트 클래스는 여전히 정확 테스트 대상은 libs/yourlibrary.jar에서만 찾을 수 있으며 (?) 프로젝트 -> 등록 정보 -> Java 빌드 경로 -> 라이브러리

에서 참조됩니다.
+0

안녕하세요, 저는 같은 문제가있었습니다. 그런 다음 주 프로젝트에서 사용 된 모든 라이브러리를 테스트 응용 프로그램의 lib 폴더에 추가합니다. 이 라이브러리를 Maven 의존성으로 추가 할 수 있습니까? –

관련 문제