6

Android JUnit テストを Bamboo Ant ビルドに統合しようとしています。私はすでにセットアップをローカルでテストしており、テストを実行できます。

しかし、Bamboo サーバーで同じセットアップを試みたところ、テストの実行時に次のエラーが発生しました。

INSTRUMENTATION_STATUS: id=ActivityManagerService
INSTRUMENTATION_STATUS: Error=Unable to find instrumentation info for: ComponentInfo{com.synapticstuff.guitartabs/pl.polidea.instrumentation.PolideaInstrumentationTestRunner}
INSTRUMENTATION_STATUS_CODE: -1
android.util.AndroidException: INSTRUMENTATION_FAILED: com.synapticstuff.guitartabs/pl.polidea.instrumentation.PolideaInstrumentationTestRunner

インストルメンテーション用のカスタム ライブラリ ( http://code.google.com/p/the-missing-android-xml-junit-test-runner/ ) を使用して、JUNit xml テスト結果とフィードをプルできることに注意してください。それをバンブーに。

また、ビルドの作成に使用されるビルド エージェントは Ubuntu VM であり、GUI がないため、コマンド ラインからすべてを行う必要があります。AVD はその VM で既に実行されています。

コマンドを最初にローカルで実行したときに同じ問題が発生しましたがadb shell am instrument .. <snip>、Eclipse からテストを実行した後に動作するのが奇妙であることがわかりました。

エラー ログを調べると、Android Instrumentation Frameworkの記事に次のように書かれています。

「インストルメンテーション apk がデバイスにインストールされていないか、マニフェスト ファイルのパッケージ名が正しくない可能性があります。」

そのため、インストルメンテーション apk がインストールされていない必要があります。

では、インストルメンテーション apk を AVD にインストールするにはどうすればよいですか?

ありがとう!

4

6 に答える 6

3

おそらく複数の状況でこのエラーが発生する可能性がありますが、エミュレーターにインストルメント化されたバージョンのテスト パッケージがインストールされていないことが原因です。ドキュメントは少し不足していますが、エミュレーターにインストールする「インスツルメンテーション APK」はないと思います (少なくともそのようなものは見つかりませんでした)。インストルメンテーションを含めてテスト アプリケーションをビルドします。とにかく、これはantを使用してコマンドラインからテストを実行する方法であり、現在は機能しています。

ant instrument install test

これは、Android エミュレーター プラグイン ( https://wiki.jenkins-ci.org/display/JENKINS/Android+Emulator+Plugin )を使用して Jenkins で実行することもできます。ここのコマンドラインビルドドキュメントでインストゥルメントタスクを見つけました: http://developer.android.com/tools/building/building-cmdline.html

于 2013-02-08T03:38:34.550 に答える
2

別の理由が考えられます。マニフェスト ファイルのパッケージ名が正しくありません。

まず、単体テスト プロジェクトのマニフェスト ファイルでパッケージ名を確認してください。

于 2011-08-02T05:54:37.553 に答える
1

私はそのカスタムInstrumentationTestRunner(http://code.google.com/p/the-missing-android-xml-junit-test-runner/)をダウンロードした数少ない人の一人でもあり、現在この問題に悩まされています!同じエラーメッセージが表示されます。残念ながら、現時点では答えがわかりませんが、役立つ情報が見つかったら更新されます。その間、私はこの人のテストランナーのような他のオプションを探しました:http://www.alittlemadness.com/2010/07/14/android-testing-xml-reports-for-continuous-integration/

継続的インテグレーションに関連する別の議論もあります:HTMLでAndroidテストレポートを自動的に生成する方法

于 2011-09-12T19:23:52.573 に答える
1

ビルドスクリプトに追加すると、おそらくこれを解決できます。

adb install -r testproject/bin/testproject.apk

最初にapkファイルの名前を確認してください.antがそれを正確に行う方法がまだわからなかったので、通常はbinディレクトリに作成されています.

Android の公式ドキュメントも参照してください。

于 2012-04-04T13:51:23.193 に答える
-1

Bamboo で Android ビルドを実行すると、まったく同じ問題が発生しました。何らかの理由android:targetPackageで、テスト プロジェクト マニフェストの要素が正しくないことがわかりました。テストプロジェクトではなく、メインプロジェクトのパッケージに設定されました。何らかの理由で、Eclipse でテストを実行するとすべて正常に動作しましたが、コマンド ラインで ant テストを実行しようとすると停止しました。インストルメンテーション インストルメンテーション タグの読み取り:

<instrumentation
    android:name="android.test.InstrumentationTestRunner"
    android:targetPackage="com.example.blah" />

これは、プロジェクトを作成したときにEclipseによって自動的に生成されました。私はそれを読むように変更しました:

<instrumentation
    android:name="android.test.InstrumentationTestRunner"
    android:targetPackage="com.example.blah.test" />

そして突然、すべてがうまくいきました。

于 2012-12-10T03:06:34.557 に答える