Android Studio

时间:2015-05-21 11:57:00

标签: android android-studio android-source android-testing

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

测试来源(例如AndroidJunitRunner)似乎不是通过sdk经理提供的,我错过了什么吗?

3 个答案:

答案 0 :(得分:14)

我遇到了类似的问题,花了很多时间才弄明白。这似乎是由于缺少Gradle任务而导致的错误,因为在升级到AS v1.2 +之后,SAME配置曾经工作但不再工作。

首先,以下依赖关系已过时。

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'
...

defaultConfig应该像往常一样包含以下行。

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

此外,请确保通过SDK Manager安装Android支持存储库。

如果无法解析android.support.test。*,请按如下方式手动执行Gradle任务。

  1. 点击右侧的Gradle标签。
  2. 折叠Android模块并浏览“任务”节点。
  3. 双击执行other-> generateDebugAndroidTestSources
  4. 如果成功,问题可能会得到解决。至少,它适合我。

    <强>更新

    似乎在AS 2.1.2上仍有可能发生这种情况。需要注意的是,如果您有多个Android模块,那么从一个特定模块运行gradle任务generateDebugAndroidTestSources对所有人来说应该足够了,尤其是Android库模块。

    enter image description here

答案 1 :(得分:4)

我最近遇到了这个问题,现在我解决了。 添加以下依赖项和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替换回androidTestCompileSync Project with Gradle file。相关的图书馆仍在那里。

我想张贴图片以使其更清晰,但我是新来的,无法发布图片。 希望这会对你有所帮助。

答案 2 :(得分:0)

您可以使用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'
    }
}