Android Studio导入现有单元测试"无法找到仪器信息"

AJD*_*AJD 60 junit android android-studio

所以我正在尝试我们的Android Studio并测试一个在eclipse中工作的项目.我得到了所有编译,应用程序将启动就好了,但我不能让我的单元测试和工作.我最终通过添加我的应用程序li​​b文件夹作为依赖项来编译它们,但我不认为我的运行配置是正确的,因为无论何时我运行我的测试我都会收到此错误

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.
Run Code Online (Sandbox Code Playgroud)

编辑:对于所有新来的人,自我最初发布此问题以来,Android Studio的状态发生了很大变化,但许多有用的人继续发布他们针对此错误的特定解决方案.我建议先主动排序并先查看最新的答案.

tho*_*ers 61

如果您在此类中定义了testInstrumentationRunner build.gradle:

android {
    defaultConfig {
        testInstrumentationRunner "com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner"
Run Code Online (Sandbox Code Playgroud)

确保在运行配置窗口中使用Android Studio/IntelliJ运行配置中完全相同的"特定仪器运行器"进行测试.

  • 在Android Studio中选择特定的仪器运行器是我缺少的部分.谢谢! (3认同)
  • 对于Espresso:testInstrumentationRunner"android.support.test.runner.AndroidJUnitRunner" (3认同)

Mat*_*ure 19

就我而言,解决方案是:

  • 查看>工具Windows>构建变体
  • 选择*Debug变体

  • 查看>工具窗口......?这是哪里?你在谈论Eclipse吗? (2认同)

Ben*_*enL 18

解释和解决方案

如果在测试应用程序的清单中声明的​​targetPackage与正在测试的应用程序的清单中声明的​​包不同,则会出现此错误" 无法找到检测 ":

  • 没帮我. (4认同)
  • 我认为这与将'testInstrumentationRunner"android.test.InstrumentationTestRunner"添加到app gradle文件中的defaultConfig相同,适用于那些不在1980年代且使用Android Studio的人 (4认同)

ald*_*dok 16

我通过改变解决了这个问题

android.test.InstrumentationTestRunner 
Run Code Online (Sandbox Code Playgroud)

com.android.test.runner.MultiDexTestRunner
Run Code Online (Sandbox Code Playgroud)

在EditConfigurations - > Specific Instrumentation Runner(可选)选项卡中.

事实证明,因为我的应用程序正在使用MultiDex,我还需要将测试运行器更改为MultiDexTestRunner.

更新:

作为@dan评论,InstrumentationTestRunner不推荐使用AndroidJUnitRunner.


god*_*ier 0

我曾经遇到过这个错误。我在 CLI 模式下使用 sdk 工具。当我在测试项目中启动“ant test”时发生错误。后来我注意到我之前甚至没有构建和安装测试项目!(使用“ant debug install”)因此,您应该在运行测试之前尝试检查您的运行配置,看看测试项目是否已有效构建。对于另一种情况,Android Studio 使用 Gradle。我不太了解,但尝试检查项目的 Gradle 设置或 Gradle 设置文件。