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

时间:2017-05-25 10:09:54

标签: android android-gradle build.gradle android-support-library android-espresso

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

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.5替换为0.60.7等,直到Gradle同步成功,但这很无聊,我会花很长时间。

1 个答案:

答案 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工件正在引起导致冲突的传递依赖项。