如何在不测试时从Gradle构建中排除AndroidTest /资产?

时间:2015-02-24 23:04:35

标签: android unit-testing android-studio gradle android-assets

我的单元测试需要一些大型资源才能测试解析复杂的媒体文件。我注意到Gradle在调试和发布版本中都包含整个androidTest / assets文件夹。这导致不必要的APK文件大小膨胀。

我尝试在build.gradle中为媒体文件设置android {aaptOptions {ignoreAssetsPattern"!*。ext"}}'扩展名,但androidTest / assets文件夹似乎不符合这些资产排除选项。我设法让构建使用android {packagingOption {exclude' AndroidTest / assets / filename.ext'其中filename.ext是没有通配符支持的完整文件名。这排除了所有构建中的资产,即使在测试时也是如此。

我希望我能找到一些Gradle方法来排除发布版本中的文件夹,但是资产可能不应该出现在构建中,除非我打算专门用于运行检测测试。这里有什么好的选择吗?

我简直无法相信默认行为是在所有构建中始终包含androidTest / assets。这应该被视为一个错误并被报告吗?

1 个答案:

答案 0 :(得分:2)

在我为我的库项目编写测试之后,似乎另一个开发人员明确地向我的build.gradle文件添加了一个指令。他改变了默认位置以寻找仪器测试。因此,Gradle工具将androidTest / assets文件夹视为普通资产文件夹,并将文件添加到每个APK。

这是违规行:

instrumentTest.setRoot('tests')

感谢您的帮助!