web-dev-qa-db-ja.com

Android Eclipse Plugin:Instrumentation Test Runnerが指定されていません

AndroidプロジェクトでEclipseから単体テストを実行しようとすると、このエラーが発生します。 Android設定のInstrumentation Test Runnersのリストは空です。

[2009-06-17 23:57:51-MyApp]エラー:アプリケーションがAndroid.test.InstrumentationTestRunnerインストルメンテーションを指定していないか、uses-library Android.test.runnerを宣言していません

また、ユニットテストを1回実行しようとしたので、それが常にやりたいことだと迷惑をかけて決めました。

65

の中に Run ConfigurationあなたはAndroid JUnit Test、この中に新しい起動構成エントリがある場合は、それを削除してから実行するアプリケーションを実行します。

注-Josefからの回答で説明されているように、マニフェストに正しい行を追加する前にテストケースを実行しようとした場合、これが解決策となる可能性があります。これを行った場合は、構成を削除し(ヘッダーにインストルメンテーションテストランナーが指定されていないことを訴えます)、それをAndroid Junit Testとして再度実行すると、マニフェストに追加した正しい内容をピックアップする有効な構成(これについてはJosefの回答を参照)。

59

おそらくuses-libraryおよびinstrumentationノードのAndroidManifest.xml

<manifest ...>
    <application ...>
        <!-- ... -->
        <uses-library Android:name="Android.test.runner" />
    </application>
    <instrumentation Android:name="Android.test.InstrumentationTestRunner"
        Android:targetPackage="your.package"
        Android:label="your tests label" />
</manifest>
111
Josef Pfleger

この議論で気が付いたのは、マニフェストの「instrumentation」要素が「manifest」の子であり、「application」の子ではないことを確認する必要があるということです。 (ここの例は正しいですが、これは混同しやすいです。)

http://developer.Android.com/guide/topics/manifest/instrumentation-element.html

インストルメンテーションをアプリケーション内に配置した場合、それは選択されず、インストルメンテーションランナー用のEclipse ADTプラグインでの選択が空白になる可能性があります。 (ただし、エラーはスローまたは表示されません。など)

18
Charlie Collins

Eclipseからテストクラスを右クリックするだけでIDEをクリックし、[実行]をクリックします。この後、Eclipseで設定ウィンドウを起動する[構成の実行]を選択します。 「Instrumentation Runner」の横にあるラジオボタンをクリックし、ドロップダウンから構成済みのInstrumentation Runnerを選択します。今度は「適用」をクリックしてから「実行」をクリックします。これで問題が解決すると思います。

ありがとう、Smruti

9
user190362

それはあなたのコードではなく、Eclipseが少しバグがあるだけです。実行構成では、jUnitテストを実行しようとしている可能性がありますが、「アプリケーションを実行」を選択すると、そのエラーは消えます。

2
pier shaw

以下の項目がテストアプリのマニフェストで宣言されていることを確認することに加えて、[構成の実行]フィールドで[計測ランナー]フィールドが[

"com.google.Android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner". 

これは、テストを実行できない理由を考え出すときに遭遇しました。

マニフェスト:

<instrumentation Android:name="Android.test.InstrumentationTestRunner"
 Android:targetPackage="your.package"
 Android:label="your tests label" />

 and...

<uses-library Android:name="Android.test.runner" />
1
Yoong

問題は、プロジェクトを作成したときにAVDがあったため、これらの構成が欠落することです。私の提案する方法は、最初にAVDを作成し、次にAndroidプロジェクト:)を作成することです。

すでにプロジェクトを作成していて、作成したコードがあまりない場合は、プロジェクトを削除して新しいプロジェクトを作成することをお勧めします。

0