27

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

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

私は解決策もグーグルで検索しました。一部のサイトでは、AndroidManifestFileのタグandroid:targetPackage属性を確認してください。

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

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

4

3 に答える 3

24

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

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

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

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

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

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


アップデート:

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

于 2012-04-16T11:11:10.880 に答える
11

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>
于 2013-04-09T13:49:20.927 に答える
6

私の場合、gradleを使用して実行し、connectedInstrumentTestタスクのみを実行していました。

./gradlew connectedInstrumentTest

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

./gradlew installDebug connectedInstrumentTest
于 2014-04-18T10:15:40.070 に答える