如何确定我需要哪个版本的com.android.support.test依赖项



我需要在我正在处理的项目中编写一些自动化测试。所以我只是从一些谷歌的例子中复制了所需的依赖项:

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:runnercom.android.support.test:rules等依赖于支持库 25.3.0?

当然,我可以继续用 0.60.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 工件正在拉入导致冲突的传递依赖项。

相关内容

最新更新