我需要在我正在处理的项目中编写一些自动化测试。所以我只是从一些谷歌的例子中复制了所需的依赖项:
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.6
、0.7
等替换0.5
,直到 Gradle 成功同步,但这很无聊,需要很长时间。
简短的回答是,目前没有依赖于支持库 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 依赖项命令来确定哪些 espresso 工件正在拉入导致冲突的传递依赖项。