web-dev-qa-db-ja.com

Android Studioユニットテスト:インストルメンテーションが見つかりませんORクラスが見つかりませんex

私のAndroid studio内に次のdir構造を持つテストスイートがあります。

-MainProject
 -src
  --com
  --tests
    --Java.xx.xxx.xx.test

私のAndroidManifest内には、次のものがあります。

<instrumentation
    Android:name="Android.test.InstrumentationTestRunner"
    Android:targetPackage="tests.Java.xxx.xxx.xxx.test" />

コマンドラインからテストを実行すると:./gradlew connectedInstrumentTest、私は単に得ます:

Tests on Nexus 5 - 4.4.2 failed: Instrumentation run failed due to 'Java.lang.ClassNotFoundException'

内部からテストを実行すると、Android Studioが表示されます。

Running tests
Test running startedTest running failed: Unable to find instrumentation info for: ComponentInfo{tests.xxx.xxx.xxx.xxx.test/Android.test.InstrumentationTestRunner}
Empty test suite.

また、build.gradleファイルのdefaultConfigでtestPackageNameを指定しています。実行中Android Ubuntu 12.0.4のStudio 0.4.6。

何か案は?

14
Whitney Imura

私は同じ問題を抱えていて、ネット上で何も見つけることができませんでした。答えは非常に簡単でした。テストのRunConfigurationを編集して、AndroidテストではなくJUnitテストになるようにする必要があります。

だから基本的に私は次のことをしました:

  1. 「構成の編集」をクリックしました
  2. 「新しい構成を追加」をクリックし、JUnitを選択しました
  3. 名前とを挿入し、テストの種類で[パッケージ内すべて]を選択しました。

それでおしまい。

7
Kaschwenk

このようなエラーも発生し、 https://google.github.io/Android-testing-support-library/docs/espresso/setup/index。 html そしてそれは働いています。それがあなたにも役立つことを願っています:-)

testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
5
BomberBus

私は同じ問題を抱えていました、私に起こったのはテストの構成のエラーでした。

以下の画像のように、テスト用の正しい基本構成があることを確認してください。

enter image description here

Android Instrumented Tests構成がない場合は、黄色の矢印から作成できます。

PS:さらに、構成によって参照されるクラスが実際に存在し、パッケージ名が正しいことを確認してください

5
MatPag

基本的に、クロスチェックする3つのこと:

  1. 追加したことを確認してくださいtestInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"

そのプロジェクト/モジュールのbuild.gradleのdefaultconfig内(サブモジュールの場合)

  1. 次のテストコンパイル依存関係を追加したことを確認します。

    androidTestCompile 'com.Android.support.test:rules:0.5'
    androidTestCompile 'com.Android.support:support-annotations:25.2.0'
    androidTestCompile 'com.Android.support.test:runner:0.5'
    
  2. テストファイルだけでなく、AndroidTestフォルダーにもテストファイルを追加していることを確認してください。

4
Kannan_SJD

さまざまな方法を試しましたが、問題を解決する方法はありませんでした。私がやったことは、Javaテストファイルをコピーを同じ正確なフォルダに作成しますが、名前が異なり、元のファイルを削除します。

この問題は元々、テストクラスをプロジェクトのテストフォルダーからandroidTestフォルダーに移動したことが原因であると思います。

1
Michael Kern

エントリを削除しましたAndroid.support.test.runner.AndroidJUnitRunnerからAndroidテスト構成とテストの実行を開始しました

1
Akshat