如何在androidTest配置中排除或替换应用程序依赖项

时间:2015-11-03 15:04:59

标签: android gradle android-gradle android-testing

我有一个应用程序,其中androidTest配置已经命中了臭名昭着的dex 64k method limit,其中应用程序和测试库依赖关系有助于方法计数。

为了让方法计数再次低于64k,我想要删除一些依赖项。对于实际应用,我已经取代了

app
+-- largeDependency

带有一个风味包装库:

app
+-- dependencyWrapper
    +-- largeDependency

对于测试配置,我想将dependencyWrapper替换为没有引入largeDependency的存根风格:

androidTest
+-- app
    +-- dependencyWrapperStub

如何覆盖测试配置中的构建风格?天真的方法

compile project(path: 'dependencyWrapper', configuration: 'prod')
androidTestCompile project(path: 'dependencyWrapper', configuration: 'stub')

不起作用,因为测试配置依赖于带来其依赖关系的app配置,现在有两个包装库副本。

1 个答案:

答案 0 :(得分:0)

我最终做的是重构依赖项:

app
+-- appLibrary
|   +-- dependencyWrapperInterface
+-- dependencyWrapperImpl
    +-- dependencyWrapperInterface
    +-- largeDependency

旧应用程序现在是一个链接appLibrary模块的库项目dependencyWrapperInterface。它实际上只是一个空存根实现的接口。瘦app项目现在包含dependencyWrapperImpl模块,该模块实现相同的接口并引入largeDependency来执行此操作。 appdependencyWrapperImpl接口实现注入appLibrary

测试在appLibrary上运行,依赖性设置减少,现在再次低于64k:

androidTest
+-- appLibrary
    +-- dependencyWrapperInterface