Robotium测试无法找到活动类

时间:2012-03-13 01:40:46

标签: android unit-testing android-activity robotium

我一直在使用robotium来测试我的Android应用程序。到目前为止,我发现它非常有用。最近我们进行了一次重构,在整个应用程序中只使用一个活动,每个页面将被一个片段替换。

然而,在我们开始使用该活动来运行单元测试之后,测试会抱怨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

应用apk已加载,AndroidManifest.xml也应该可以。

1 个答案:

答案 0 :(得分:0)

确保重构后:

测试项目的AndroidManifest.xml仍然准确:

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

测试类仍然准确:

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);
    }
    //..
} 

所测试的应用程序的所有库只能(!)在libs / yourlibrary.jar中找到,并在Project-&gt; Properties-&gt; Java Build Path-&gt; Libraries

中引用