如何附加来自android.support.test.*
的来源以便在AS中进行调试?
尝试从https://android.googlesource.com/platform/frameworks/testing下载源代码,但该版本似乎与我的测试库版本不匹配。
测试来源(例如AndroidJunitRunner
)似乎不是通过sdk经理提供的,我错过了什么吗?
答案 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任务。
如果成功,问题可能会得到解决。至少,它适合我。
<强>更新强>
似乎在AS 2.1.2上仍有可能发生这种情况。需要注意的是,如果您有多个Android模块,那么从一个特定模块运行gradle任务generateDebugAndroidTestSources
对所有人来说应该足够了,尤其是Android库模块。
答案 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
替换为compile
和Sync Project with Gradle file
。我可以看到相关的库。
最后,我再次将compile
替换回androidTestCompile
和Sync 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'
}
}