谁能帮我理解testProguardFile的用法?假设我有debug buildType,并在gradle构建文件中这样配置:
// inside android block
debug {
shrinkResources true // removes unused graphics etc
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
testProguardFile('test-proguard-rules.pro')
}
那么为什么我要提供另一个proguard规则文件test-proguard-rules ?测试专家?如果我理解正确,当我做仪器测试一个单独的apk生成,但如果我只是做单元测试,它也是这样吗?
我想能够做的是运行"单元测试"(不是仪表测试),但让单元测试apk使用我在项目构建设置中定义的proguard规则。
正如我在我的博客文章中解释的那样-为Android Instrumentation测试配置ProGuard:
最初,有大约 2个主要的,不同的 Gradle任务用于运行仪表测试:assembleRelease
和assembleAndroidTest
。前者执行生成应用.apk
所需的内容。后者触发仪表测试.apk
的组装,当仪表测试运行时,它与应用程序一起安装在测试设备上(两者都在同一操作系统进程的上下文中运行)。
当proguardFiles
设置生成应用程序.apk
时要考虑的ProGuard规则文件列表时, testProguardFiles
对检测.apk
做同样的事情。
因此,虽然命名令人困惑,但testProguardFiles
对单元测试没有影响,但它对于在启用proguard的项目中运行的instrumentation测试很重要。
现在我看到它是什么testProguadFile('一些保护文件')给你的测试apk一个保护文件测试时使用。这允许我们使用proguard文件测试我们的应用程序。运行测试时生成的测试apk将被proguard混淆,然后测试将运行。这是测试proguard可能在应用中创建的任何异常的好方法。