Android Studio Unit Testing: unable to find instrumentation OR class not found ex

情到浓时终转凉″ 提交于 2019-12-22 03:42:17

问题


I have a test suite within my Android studio that has the following dir structure:

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

Within my AndroidManifest, I have the following:

<instrumentation
    android:name="android.test.InstrumentationTestRunner"
    android:targetPackage="tests.java.xxx.xxx.xxx.test" />

When I run my tests from the command line using: ./gradlew connectedInstrumentTest, I simply get:

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

When I run the tests from inside Android Studio I get:

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.

I also have the testPackageName specified in my defaultConfig in the build.gradle file. Am running Android Studio 0.4.6 on Ubuntu 12.0.4.

Any ideas?


回答1:


I had the same problem and could not find anything on the net. The answer was pretty simple: You have to edit the RunConfiguration of your test so that it is not a Android Test but a JUnit test.

So basically I did the following:

  1. Clicked "Edit Configuration"
  2. Clicked "Add new Configuration" and chose JUnit
  3. Inserted a name and the and chose "All in package" at Test kind.

That's it.




回答2:


I also get error like this and I added the following line in build.gradle file as shown in https://google.github.io/android-testing-support-library/docs/espresso/setup/index.html and it's working. I hope it will also help you :-)

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"



回答3:


Basically three things to cross check:

  1. Make sure your have added testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

in your defaultconfig of build.gradle of that project/ module (in case of sub module)

  1. Make sure you have added following test compile dependencies:

    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. Make sure you are adding your test files to the AndroidTest folders and not just to test folder.




回答4:


I had the same problem, what happened to me was an error with the configurations of tests.

Be sure that you have the correct base configurations for testing like those below in the image:

If you don't have an Android Instrumented Tests configuration, you can create one from the yellow arrow.

PS: Moreover check that classes referenced by configurations really exists and the package name is correct




回答5:


I removed the entry android.support.test.runner.AndroidJUnitRunner from the Android Test configuration and it started to run the tests for me




回答6:


I tried various methods but none fixed the issue for me. What I did is simply make a copy of the java test file into the same exact folder but with a different name and deleted the original.

I believe this issue was originally caused by moving my test class from the project test folder into the androidTest folder.



来源:https://stackoverflow.com/questions/22106891/android-studio-unit-testing-unable-to-find-instrumentation-or-class-not-found-e

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!