所以我想我们的Android Studio和测试,在日食工作的项目。 我得到的一切编译和应用程序将启动就好了,但我不能让我的单元测试,并正在运行。 我最终得到了他们加入我的应用程序lib文件夹作为依赖编译,但我不认为我的运行配置是正确的,因为每当我跑我的测试中,我得到这个错误
Installing <packagename>
DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/<packagename>"
pkg: /data/local/tmp/<packagename>
Success
Running tests
Test running started
Test running failed: Unable to find instrumentation info for: ComponentInfo{<packagename>/android.test.InstrumentationTestRunner}
Empty test suite.
编辑:对所有新来港人士,Android Studio中的状态已经改变了很多,因为我最初发布这个问题,但许多乐于助人的人继续张贴此错误的特定解决方案。 我建议通过活跃的排序和首先检查了最新的答案。
Answer 1:
如果你在你所定义的testInstrumentationRunner build.gradle
像这样:
android {
defaultConfig {
testInstrumentationRunner "com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner"
确保在运行配置窗口中,您使用完全相同的“特定仪器亚军”在你的Android工作室/的IntelliJ运行配置为您的测试。
Answer 2:
Answer 3:
说明和解决方案
如果targetPackage在测试应用程序的清单中声明该错误“ 无法找到仪器 ”是出现在应用程序的清单中声明的包不同的被测试:
Answer 4:
我通过改变解决了这个问题
android.test.InstrumentationTestRunner
成
com.android.test.runner.MultiDexTestRunner
在EditConfigurations - >具体仪表转轮(可选)选项卡。
原来,因为我的应用程序使用MultiDex,我需要改变测试运行,以MultiDexTestRunner为好。
更新:
正如@丹评论, InstrumentationTestRunner
不赞成使用AndroidJUnitRunner
代替。
Answer 5:
在我的情况下运行/调试配置错了。
一个解决办法:
转到运行/调试配置
运行- >编辑配置...
安装一个Android的测试为测试类
选择左侧的Android测试配置
或创建一个新的与加号图标并将其命名为如类名测试
选择包含您的测试类的模块。 在最简单的情况下,测试类是您的应用程序模块,使选择的应用程序英寸
选择下一行的测试配置。 我用:
选择您的测试类
最后配置您的目标设备,然后选择确定。
Answer 6:
在AndroidStudio版本这只能<2.3
在我的情况下,错误的仪器亚军被选中。
我通过指定在测试的运行/调试配置(见下文)的仪表转轮固定这一点。 在那里,你可以从列表中选择一个亚军。 ![](https://www.manongdao.com/static/images/pcload.jpg)
你会发现运行/调试配置: 运行- >编辑配置...
Answer 7:
我有同样的问题@Iuliia Ashomok,并试图在互联网上的一切。
仍然没有运气。
术后第2天的调查,我发现问题是由移动电话创建。 .V。
我原来用小米手机4i作为测试设备(植根)和测试无法运行。 当然,我得到了下面的错误。
Test running failed: Unable to find instrumentation info for: ComponentInfo{<packagename>/android.test.InstrumentationTestRunner}
然而,当我使用索尼XPERIA Z3(无根),一切正常。
Answer 8:
它接缝你有没有好的项目结构。
打开AndroidManifest.xml中,并检查它有
<instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.YourClass" android:label="Tests for com.example.YourClass"/>
如果NO下一步:
- 重新组织你的目录结构下列之一:(这是从recomendation 官方源 )
MyProject/
AndroidManifest.xml
res/
... (resources for main application)
src/
... (source code for main application) ...
tests/
AndroidManifest.xml
res/
... (resources for tests)
src/
... (source code for tests)
- 你看,你需要有内部测试模块。
对于理念IDE创建它下一步做文件- >新建模块- >测试模块 。 创建你可以看到一个新的AndroidManifest.xml后。 它具有仪器的声明中。
Answer 9:
有一次,我得到这个错误。 我使用SDK工具CLI模式。 当我在测试项目中推出“蚂蚁测试”发生的错误。 后来我才发现,我甚至没有建立和之前安装的测试项目! (用“蚂蚁调试安装”),所以你应该尝试检查正在运行的配置,看看测试项目得到了运行测试之前有效地构建。 对于其他情况下,Android的工作室使用摇篮。 我不知道它很好,但尝试检查摇篮设置项目或摇篮设置文件。
Answer 10:
对我来说,这个问题是有这种依赖关系:
debugCompile 'com.android.support.test:rules:0.2'
之后,我删除它发现我的测试中,并再次运行。
请注意,我没有得到“无法找到仪器”的消息,但“无测试发现”的消息。
Answer 11:
它原来是一个延迟的问题。 之后我等了一会儿阅读的互联网解决方案,它会自动固定。 我重新编译的代码,它的工作。
Answer 12:
由于没有这些答案的帮助我,我想分享我的人谁是绝望,因为我是解决方案。 :)
因为我用的是测试库,我需要通过增加使multidex支持multiDexEnabled true
我的摇篮建设。 我不知道我有multidex支持全面实施开始与固定的错误,但最终,我没有最终需要它和删除我的构建该行(这样做,因为我上次来实现它,它已经改变了的正确方法) 。 我的团队在工作中不得不与启用multidex支持......在典型的Android风格的几个测试问题。
Answer 13:
在我在同一类情况下,一些测试用例中挑选正确的测试运行(android.support.test.runner.AndroidJUnitRunner),其定义的build.gradle和一些测试例拿起android.test.InstrumentationTestRunner,这是没有定义至少在清单或的build.gradle或编辑配置。 理想情况下,应已随Gralde选项解决由同步项目,但没有奏效。
最后我找到对抗的方法定义错误的测试运行.idea/workspace.xml
,我手动更改它,问题得到了解决。
一般来说,我们不应该修改这个Android Studio中生成的文件,但对我来说没做过最后的选择。
Answer 14:
就我而言,这个问题是设备太。 其他设备都工作正常。 简单卸载后重新安装固定它。
Answer 15:
这个答案是要解释历史问题和总结所有相关设置。
基本上有用于检测测试工具配置3个可能的地方。
在EditConfigurations - >常规选项卡 - >特殊仪器亚军(可选)
这是Android Studio 2.2中和版本之前只存在,在最新版本中,它已经被删除。
清单文件,测试转轮配置如下。
< instrumentation android:name="android.support.test.runner.AndroidJUnitRunner"
android:targetPackage="com.mytestapp.test"/>
由于“android.test.InstrumentationTestRunner” API等级24已被弃用,该设置也没有必要则已,只要你在配置文件中的gradle亚军。
如果您想保留此设置,请确保亚军名称应与您在gradle这个文件中设置的一个,否则你会得到这个错误也。
- 在gradle这个文件。
这是,如果你使用上面的Android V2.3工作室的唯一推荐的方式。
android {
.......
defaultConfig {
.......
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
}
文章来源: Android Studio import existing unit tests “Unable to find instrumentation info”