web-dev-qa-db-ja.com

インストルメンテーションターゲットパッケージが見つかりません:com.xyz

ライブラリプロジェクトのテストケースクラスを作成しました。このテストケースプロジェクトは個別に作成しました。

このテストプロジェクトを実行しようとすると、コンソールにエラー"Unable to find instrumentation target package: <with package name>"

私はまた、解決策をググり、彼らが与えたいくつかのサイトでは、AndroidManifestFileのタグAndroid:targetPackage属性をチェックします。

マニフェストのインストルメンテーションタグが正しいことを確認しました。それは、libraryprojectパッケージを正しくターゲティングしています。

ライブラリのテストケースプロジェクトを実行可能にするために、誰かがこれを手伝ってくれるでしょうか

26

ライブラリプロジェクトをテストするには、ライブラリプロジェクトに依存するアプリケーションプロジェクトを作成してセットアップする必要があります。 公式開発者ガイド からの引用:

ライブラリプロジェクトのテスト

ライブラリプロジェクトのコードとリソースのテストを設定するには、2つの推奨される方法があります。

  • ライブラリプロジェクトに依存するアプリケーションプロジェクトを計測するテストプロジェクトを設定できます。その後、ライブラリ固有の機能のテストをプロジェクトに追加できます。

  • ライブラリに依存する標準アプリケーションプロジェクトをセットアップし、そのプロジェクトにインスツルメンテーションを配置できます。これにより、テスト/計測とテストするコードの両方を含む自己完結型プロジェクトを作成できます。

Androidライブラリプロジェクトは直接ビルドされませんが、メインアプリケーションプロジェクトと一緒にビルドされます。つまり、独自の.apkに直接コンパイルしてAndroidデバイスで実行することはできません。一方、インストゥルメンテーションテストは、テストプロジェクトアプリケーションを実行することで機能します(「Run As。 .. "->" Eclipseの "Android JUnit Test")は、app.apkとtest.apkの両方をデバイスにインストールし、test.apkを使用してapp.apkを操作した後、テスト名の「instrumentation」の部分になります。 。


更新:

テストプロジェクト自体も通常のアプリケーションプロジェクトであるため、2番目のアプローチを使用すると、3番目のアプリケーションプロジェクトを作成せずにテストプロジェクトテストライブラリプロジェクトを作成できることに注意してください。

24
yorkw

Androidテストプロジェクトを作成するときは、適切なターゲットパッケージを設定することを忘れないでください。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
    package="com.example.test" <-------------------
    Android:versionCode="1"
    Android:versionName="1.0" >
    <uses-sdk Android:minSdkVersion="8" />
    <instrumentation
        Android:name="Android.test.InstrumentationTestRunner"
        Android:targetPackage="com.example.test" >  <-----------------
    </instrumentation>
    <application
        Android:icon="@drawable/ic_launcher"
        Android:label="@string/app_name" >
        <uses-library Android:name="Android.test.runner" />
        <activity Android:name="TestActivity" />
    </application>
</manifest>
11
Dawid Drozd

私の場合、gradleで実行していて、connectedInstrumentTestタスクだけを実行して

./gradlew connectedInstrumentTest

「インストルメンテーション情報が見つかりません」というエラーが表示されていました...問題は、次のように、connectedInstrumentTestタスクの前に実行するinstallDebugタスクも含める必要があることです。

./gradlew installDebug connectedInstrumentTest
4
gsaslis