我需要在我正在开发的项目中编写一些自动化测试。所以我只是从一些谷歌的例子中复制了所需的依赖项:
androidTestCompile 'com.android.support.test:runner:0.5'
androidTestCompile 'com.android.support.test:runner:0.5'
androidTestCompile 'com.android.support.test:rules:0.5'
// Espresso UI Testing dependencies.
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
androidTestCompile 'com.android.support.test.espresso:espresso-contrib:2.2.2'
androidTestCompile 'com.android.support.test.espresso:espresso-intents:2.2.2'
我遇到的问题是你可以在SO上发现的一百万个问题:
Warning:Conflict with dependency 'com.android.support:recyclerview-v7'. Resolved versions for app (25.3.0) and test app (23.1.1) differ. See http://g.co/androidstudio/app-test-app-conflict for details.
在这里,我不会询问测试运行器,测试规则和其他测试依赖项的必需版本,以便能够同步Gradle并继续前进。
我的问题。有没有快速的方法可以查看哪些版本的com.android.support.test:runner
,com.android.support.test:rules
等依赖于支持库25.3.0?
当然,我可以继续将0.5
替换为0.6
,0.7
等,直到Gradle同步成功,但这很无聊,我会花很长时间。
答案 0 :(得分:0)
简短的回答是,目前还没有一个版本依赖于支持库25.3.0,因为该版本的支持库在官方稳定测试工件发布很久之后才发布。
如果您希望能够在将来的版本中识别它,则需要查看每个工件的传递依赖性。您可以在maven pom文件中查看这些内容,也可以通过gradle运行:
gradle :your_module_name:dependencies
话虽这么说,你通常可以使用任何版本的支持库,告诉gradle忽略Espresso的传递依赖,如下所示:
androidTestCompile("com.android.support.test.espresso:espresso-contrib:2.2.2") {
exclude group: 'com.android.support', module: 'appcompat'
exclude group: 'com.android.support', module: 'support-v4'
exclude module: 'recyclerview-v7'
}
您可以使用上面的gradle dependencies命令来确定哪些espresso工件正在引起导致冲突的传递依赖项。