Android Studio 中测试支持库的来源

sources of Testing Support Library in Android Studio

如何附加来自 android.support.test.* 的源代码以便在 AS 中进行调试?
尝试从 https://android.googlesource.com/platform/frameworks/testing 下载源代码,但版本似乎与我的测试库版本不匹配。

测试源(例如 AndroidJunitRunner)似乎无法通过 sdk 管理器获得,我是不是遗漏了什么?

您可以使用 Espresso 进行 UI 测试,并使用 Robolectric + JUnit + Mockito 进行单元测试。

使用 AndroidJunitRunner,将其添加到 build.gradle,例如:

android {
    defaultConfig {
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
}

使用一些包android.support.test。*你需要添加像

这样的依赖
dependencies {
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.0'
    androidTestCompile 'com.android.support.test:testing-support-lib:0.1'
    androidTestCompile('com.android.support.test.espresso:espresso-contrib:2.0') {
        exclude module: 'support-annotations'
    }
}

最近遇到这个问题,现在解决了。 添加以下依赖和Sync Project with Gradle file后,我在External Library文件夹中找不到任何相关库。

androidTestCompile 'com.android.support.test:runner:0.2'
androidTestCompile 'com.android.support.test:rules:0.2'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.1'

我做的是把所有的androidTestCompile替换成compileSync Project with Gradle file。我可以看到相关的图书馆。

最后,我将 compile 替换回 androidTestCompile 并再次替换 Sync Project with Gradle file。相关库还在。

我想post图片,使它更清楚,但我是新来的,不会post图片。 希望对您有所帮助。

我遇到了类似的问题,花了相当多的时间才弄明白。这似乎是一个错误,因为缺少 Gradle 任务未执行,因为 SAME 配置曾经工作但在升级到 AS v1.2+ 后不再工作。

首先,以下依赖项已过时。

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

并在documentation中更新如下。

androidTestCompile 'com.android.support.test:runner:0.2'
androidTestCompile 'com.android.support.test:rules:0.2'
...

默认配置应像往常一样包含以下行。

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

此外,请确保 Android 支持存储库已通过 SDK 管理器安装。

如果android.support.test.*无法解析,则手动执行Gradle任务如下

  1. 单击右侧的 Gradle 选项卡。
  2. 折叠您的 Android 模块并浏览任务节点。
  3. 双击执行other->generateDebugAndroidTestSources

如果成功,问题可能就解决了。至少,它对我有用。

更新:

似乎在 AS 2.1.2 上仍有可能发生这种情况。需要注意的是,如果你有多个 Android 模块,运行 来自一个特定的 gradle 任务 generateDebugAndroidTestSources 应该足够所有人,尤其是 Android图书馆模块一。