6

コマンドラインとEclipseの両方でしばらくの間正常に実行されているEclipseの別のテストプロジェクトがあります。Jenkins を使用してテストを実行しているときに、標準の InstrumentationTestRunner が Jenkins でサポートされている xml 形式で出力されないという問題に遭遇しました。カスタム InstrumentationTestRunner を使用するためにインターネットで読みました。これは、ADB を使用してコマンド ラインで機能しますが、Android テスト ケースとして実行すると Eclipse で失敗します。

カスタム インストルメンテーション テスト ランナー (com.neenbedankt.android.test) をダウンロードし、次のように AndroidManifest に追加しました。

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

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

    <instrumentation
        android:name="com.neenbedankt.android.test.InstrumentationTestRunner"
        android:targetPackage="com.testedapplication" />

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

Eclipseで発生するエラーは次のとおりです。

[テスト プロジェクト] は、テストを実行するために正しく構成されていません: AndroidManifest.xml 内のインストルメンテーション android.test.InstrumentationTestRunner の targetPackage 属性が見つかりませんでした!

そこに targetPackage を設定したことがわかりますが、他に何ができるかわかりません。

4

4 に答える 4

12

AndroidManifest.xmlに両方のインストルメンテーションを追加します。

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

<instrumentation
    android:name=".MyRunner"
    android:targetPackage="com.example.myapp" />

次に、Package Explorer-> $(Your Test Prject $)-> Run As-> Run configuration-> Android JUnit Test-> $(Your Test Project)-> Instrumentation Runnerに移動し、そこでランナーを選択します。

于 2012-10-31T03:09:46.390 に答える
1

run as/android junit を実行するときに eclipse がデフォルトでカスタムランナーを選択するようにするには、マニフェストファイルで順序を切り替えるだけです。あなたが最初であることを確認してください

<instrumentation
android:name="*.Custom.TestRunner"
android:targetPackage="com.*" />

<instrumentation
android:name="*.InstrumentationTestRunner"
android:targetPackage="com.*" />
于 2013-07-12T21:43:19.373 に答える
0

ああ、これまでのところ、android.test.InstrumentationRunnerランナーとカスタマーテストランナーの両方をマニフェストファイルに記述しておくことで、それを機能させることができました。Eclipseから実行するとandroid.test.InstrumentationRunnerが使用され、コマンドラインから実行するとantスクリプトで設定されている場合はカスタムテストランナーが使用されるようです。

于 2012-10-23T20:56:22.867 に答える
0

あなたのプロジェクト設定全体を見ることができないので、ここに私が試すいくつかのチェックリストがあります.

  1. Eclipse に別のテスト プロジェクトがありますか? 上記のインストルメンテーション ブロックは、ソース プロジェクトのマニフェスト ファイルまたはテスト プロジェクトのマニフェスト ファイルにありますか?

  2. <uses-library android:name="android.test.runner" /> ブロックを含めましたか?

  3. テスト プロジェクトのインストルメンテーション ブロックを <application> ブロックの外に配置し、<uses-library> ブロックをテスト プロジェクトのアプリケーション ブロック内に配置しましたか?

  4. 「新しいプロジェクト -> Android テスト プロジェクト」で Eclipse にテスト プロジェクトを作成し、ソース コードを追加した後にインストルメンテーション クラスを変更してみましたか? インストルメンテーション クラスを変更しなければ機能しますか?

  5. 「Run As -> Android JUnit test」を実行して、Eclipse でテストを実行していますか?

すでにすべてを行っている場合は、AndroidManifest ファイル全体を貼り付けると、2 つの個別のプロジェクトがあるかどうかが少し明確になると思います。

于 2012-10-23T03:07:16.863 に答える