2012-03-13 7 views
3

私はAndroidiumアプリケーションをテストするためにrobotiumを使用しています。これまでのところとても便利な道具でした。最近、アプリケーション全体で1つのアクティビティのみを使用するリファクタリングを実行しました。各ページはフラグメントで置き換えられます。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リファクタリングしてください:テストクラスは、まだ正確である

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

テストプロジェクトの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); 
    } 
    //.. 
} 

アプリのすべてのライブラリーテスト中はlibs/yourlibrary.jarにしか見つかりませんでしたが、プロジェクト - >プロパティ - > Javaビルドパス - >ライブラリ

で参照できます
+0

こんにちは、私は同じ問題がありました。次に、メインアプリケーションで使用したすべてのライブラリをテストアプリケーションのlibフォルダに追加します。これらのライブラリをMavenの依存関係として追加することは可能ですか? –

関連する問題