3

Android アプリをテストするために、UI テスト ツールのRobotiumを使用しています。推移的な lib-project 依存関係と Android ビルド ツールがそれらを処理できないため、プロジェクトのビルドとテストの実行に関して、私はすでに多くの問題を経験しています。

問題に対する以前の質問と、対応する解決策に関する議論を読んで、私の場合に紹介してください。

さて、しばらくして、ライブラリ プロジェクトBが依存している別のライブラリ プロジェクトViewPagerIndicatorを含めました。そのため、lib-projects のバグを防ぐために、上記のリンクで提供されている以前のソリューションを再度適用することを余儀なくされ、テスト プロジェクトの ant.properties に次のコードを追加しました。

android.library.reference.1=../lib-project
android.library.reference.2=../Android-ViewPagerIndicator/library

library.paths=com/mydomain/project/* com/actionbarsherlock/**

予想通り、ビルドは機能しました。しかし、実際には新しいライブラリに依存していたアクティビティへのテストケースは合格せず、java.IllegalAccessError: に遭遇しました。

test:
     [echo] Running tests...
     [exec] 
     [exec] com.mydomain.project.projectb.test.unittests.EncodeTest:.
     [exec] com.mydomain.project.projectb.test.testcases.ServerCommTest:........
     [exec] com.mydomain.project.projectb.test.testcases.LoginTest:
     [exec] INSTRUMENTATION_RESULT: shortMsg=java.lang.IllegalAccessError
     [exec] INSTRUMENTATION_RESULT: longMsg=java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation
     [exec] INSTRUMENTATION_CODE: 0

そのとき、ViewPagerIndicator が Android-Support-v4 パッケージに依存していることに気付いたので、その jar を test-projects libs ディレクトリに置き、再試行しました。今回は、アクティビティ クラスで java.lang.NoClassDefFoundError が発生しました。

test:
     [echo] Running tests...
     [exec] 
     [exec] com.mydomain.project.projectb.test.unittests.EncodeTest:.
     [exec] junit.framework.TestSuite$1:
     [exec] Failure in warning:
     [exec] junit.framework.AssertionFailedError: Exception in constructor: testCreateAlbum (java.lang.NoClassDefFoundError: com.mydomain.project.activity.LoginActivity
     [exec]     at com.mydomain.project.test.testcases.ServerCommTest.<init>(ServerCommTest.java:29)
     ...

ここで何が問題になる可能性がありますか?ant.properties ファイルの修正をまったく適用しないと、別の質問と同じエラーが発生します...

事前にご協力いただきありがとうございます。

4

0 に答える 0