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:targetPackageasandroid: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