为什么库模块 android.support.test 在 add 依赖项中不可见

2022-09-01 18:05:48

我正在将Espresso添加到Android Studio中的项目中。我已经安装了支持存储库,实际上已经在使用它的某些部分。然后,我根据安装说明将这些依赖项添加到:app/build.gradle

androidTestCompile 'com.android.support.test.espresso:espresso-core:2.0'
androidTestCompile 'com.android.support.test:testing-support-lib:0.1'

在编写我的测试时,自动完成识别工件的存在。但是当我运行时,我得到这个错误:

error: package android.support.test does not exist
error: package org.junit does not exist

以及这两个的许多其他子包。

因此,我从build.gradle中删除了上述两行,并尝试在GUI项目结构/模块/依赖项中添加。

“com.android.support.test.espresso:espresso-core:2.0”和“com.android.support.test:testing-support-lib:0.1”都没有显示为可供选择的选项。但是,在我的文件系统中,有完整的文件,包括我能够通过winzip在其中打开和导航的文件。在文件系统中,它看起来与通过带有支持存储库的SDK管理器安装的其他库没有什么不同。<sdk>\extras\android\m2repository\com\android\support\test\espresso\espresso-core\2.0\espresso-core-2.0.aar

为什么机器人工作室不认识这个库?

非常感谢您的帮助,我能找到的其他人似乎都没有遇到过这个问题。这是我能找到的最接近的:为什么库模块中的包在编译时不存在,即使Android Studio在代码中没有显示错误?

我尝试重新安装支持存储库两次。


答案 1

我遇到了同样的问题,我发现androidTestCompile的依赖项仅在调试构建变体中默认可见。

您可以通过将其添加到 build.gradle 来更改要测试的构建变体:

android {
    ...
    testBuildType "staging"
}

其中“暂存”只是一个示例,您应该将其替换为您的构建变体之一。

请记住,只测试一个变体。

更多信息请点击这里 https://code.google.com/p/android/issues/detail?id=98326


答案 2

有 2 种不同的测试依赖项配置:

  • testCompile- 由单元测试套件使用(位于文件夹中并由src/test./gradlew test)
  • androidTestCompile- 由集成测试套件使用(位于文件夹并由 调用)。src/androidTest./gradlew connectedAndroidTest

我怀疑您的测试代码位于错误的测试套件位置

在你的情况下,你的测试代码应该进入文件夹,测试套件应该通过运行来执行src/androidTest./gradlew connectedAndroidTest


推荐