Java 错误=找不到的检测信息:ComponentInfo{}

Java 错误=找不到的检测信息:ComponentInfo{},java,android,android-espresso,Java,Android,Android Espresso,我正在尝试进行浓缩咖啡测试,但我不断遇到以下错误: INSTRUMENTATION_STATUS: Error=Unable to find instrumentation info for: ComponentInfo{com.mikeestrada.test/android.test.InstrumentationTestRunner} 它工作过一次,但我无法正确地重新创建报告。它们只是空白,没有测试任何东西。 我试过很多命令,包括 adb shell am instrument -w -

我正在尝试进行浓缩咖啡测试,但我不断遇到以下错误:

INSTRUMENTATION_STATUS: Error=Unable to find instrumentation info for: ComponentInfo{com.mikeestrada.test/android.test.InstrumentationTestRunner}
它工作过一次,但我无法正确地重新创建报告。它们只是空白,没有测试任何东西。 我试过很多命令,包括

adb shell am instrument -w -r com.mikeestrada.test/android.test.InstrumentationTestRunner

以下是我的代码片段:

AndroidManifest.xml
如果它意味着什么-清单中
的属性被涂成红色,好像IntelliJ无法识别它们一样


任何帮助都很好,谢谢

您需要检查设备上安装了哪些检测软件包:

 adb shell pm list instrumentation

然后验证com.mikeestrada.test是否实际列在那里。

此外,看起来您的应用程序包是
com.mikeestrada
。 因此,在AndroidManifest集合中,android:targetPackageas
android:targetPackage=“com.mikeestrada”


我希望这会有所帮助。

查看build.gradle文件,问题实际上是您在defaultConfig部分没有以下配置:

testInstrumentationRunner "com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner"
Espresso需要
GoogleInstrumentationTestRunner
才能工作


此外,对于gradle构建系统,测试项目不需要使用
AndroidManifest.xml
,因为它是自动生成的。

如果缺少检测包,请使用以下命令安装它:

$ gradle :{$project}:installDebugAndroidTest

问题是您缺少一个空格:

instrumentationandroid:name
应该是

instrumentation android:name


看起来您需要确保已安装应用程序和测试APK。

要正确运行检测测试,请按照以下说明操作:

  • 在设备/仿真器上安装基本软件包。例如,如果要测试
    devDebug
    {flavorBuildType}组合,请执行
    /gradlew installDevDebug
    。将
    devDebug
    字符串替换为项目中的样式和构建类型

  • 在设备/模拟器上安装测试包。如果安装了
    devDebug
    现在执行
    /gradlew installDevDebugAndroidTest
    ,默认情况下,这将安装添加
    .test
    后缀的基本软件包

  • 验证仪器是否正确安装,运行
    adb shell pm list instrumentation
    它应该打印一行测试包和可用的运行程序,例如:
    androidx.test.runner.AndroidJUnitRunner

  • 启动仪器测试。例如,如果您想测试包中的单个测试类,可以这样做:
    adb shell am instrument-w-e class com.your.base.package.MyClassTest com.your.base.package.test/androidx.test.runner.AndroidJUnitRunner

  • 可选:测试完成后,您可以使用
    /gradlew uninstallDevDebug uninstallDevDebugAndroidTest


  • 您可以发布您的测试AndroidManifest.xml吗?对不起,现在我看到了标签;)引起我注意的是,您在AndroidManifest的部分中声明了一个活动。我从未见过测试应用程序声明活动。试着删除它,然后检查你的测试是否按你应得的方式运行。也许这会有帮助:如果不是这样?@behelit,那么你就不能对它执行仪器测试。@dan当你说~“什么都不管用”,你得到的具体错误是什么?我想我在某处读到,应用程序id应该自动配置,以便它们在运行时是唯一的。但是手动更改它(附加“.test”)是我运行测试的唯一方法。我不知道为什么,对不起!我无法使用给定的命令“adb shell pm list instrumentation”验证我的应用程序是否在此处列出。如果我使用的是“adb shell”pm列表包“| cut-f2-d”:“它显示了我的应用程序。这个问题解决了,但在我的例子中,任务名称是“installAdhoctestDebugAndroidTest”。
    testInstrumentationRunner "com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner"
    
    $ gradle :{$project}:installDebugAndroidTest
    
    instrumentationandroid:name
    
    instrumentation android:name