0

私は現在、自分のデバイスのいくつかの CTS の問題に取り組んでいます。Eclipse から単一の CTS テスト ケースを実行できれば、CTS の問題をデバッグするのに非常に役立つと思います。たとえば、次のマニフェスト ファイルを使用して Android テスト プロジェクトを作成しました。

    <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="android.content.pm.cts"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="15" />

    <instrumentation
        android:name="android.test.InstrumentationTestRunner"
        android:targetPackage="android.content.pm" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <uses-library android:name="android.test.runner" />
    </application>

</manifest>

そしてソースコード:

 package android.content.pm.cts;

import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.pm.ResolveInfo.DisplayNameComparator;
import android.test.AndroidTestCase;

public class ResolveInfo_DisplayNameComparatorTest extends AndroidTestCase {
    private static final String MAIN_ACTION_NAME = "android.intent.action.MAIN";
    private static final String SERVICE_NAME = "android.content.pm.cts.activity.PMTEST_SERVICE";


    public void testDisplayNameComparator() {
        PackageManager pm = getContext().getPackageManager();
        DisplayNameComparator dnc = new DisplayNameComparator(pm);

        Intent intent = new Intent(MAIN_ACTION_NAME);
        ResolveInfo activityInfo = pm.resolveActivity(intent, 0);

        intent = new Intent(SERVICE_NAME);
        ResolveInfo serviceInfo = pm.resolveService(intent, PackageManager.GET_RESOLVED_FILTER);

        assertTrue(dnc.compare(activityInfo, serviceInfo) < 0);
        assertTrue(dnc.compare(activityInfo, activityInfo) == 0);
        assertTrue(dnc.compare(serviceInfo, activityInfo) > 0);
    }
}

プロジェクトを右クリックして「android junit test として実行」を選択すると、「テストの実行に失敗しました: インストルメンテーション ターゲット パッケージが見つかりません: android.content.pm

最初から完全に間違っている可能性があることはわかっています。それで、誰かが私のために正しい方法を指摘してもらえますか?どうもありがとう!

4

1 に答える 1

0

あなたが見ているエラーは、Android OSがパッケージ「android.content.pm」でインストールされたアプリケーションを見つけることができず、Eclipseがプロジェクトをインストールしてテストしたいアプリケーションをインストールするためにプロジェクトを認識していないためです(そしてそのパッケージが実際に android.content.pm であることを確認してください。これはシステム パッケージであり、デバッグ署名が同じではないため、それに対してインストルメント化できないため、おそらくそうではありません)

于 2013-03-15T09:12:45.113 に答える