Android-GradleTestProGuardFile-它与单元测试相关的目的是什么

Android-GradleTestProGuardFile-它与单元测试相关的目的是什么,android,unit-testing,android-gradle-plugin,proguard,Android,Unit Testing,Android Gradle Plugin,Proguard,有人能帮我理解testProguardFile的用法吗。假设我在gradle build文件中有调试buildType及其配置如下: // inside android block debug { shrinkResources true // removes unused graphics etc minifyEnabled true proguardFiles getDefaultProguardFile('proguard-andr

有人能帮我理解testProguardFile的用法吗。假设我在gradle build文件中有调试buildType及其配置如下:

// 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')
    }
那么为什么我要提供另一个名为test-proguard-rules.pro的proguard规则文件来进行测试呢?如果我理解正确,当我进行仪器测试时,会生成一个单独的apk,但是如果我只进行单元测试,情况是否也是这样


我希望能够运行“单元测试”(不是仪器测试),但让单元测试apk使用我在项目构建设置中定义的proguard规则

现在我知道它是什么了testProguadFile(“某个proguard文件”)为测试apk提供了一个在测试时使用的proguard文件。这允许我们使用proguard文件测试我们的应用程序。运行测试时生成的测试apk将被proguard混淆,然后测试将运行。这是测试proguard可能在您的应用程序中创建的任何异常的好方法

正如我在博客中试图解释的-:

最初,大约有两个不同的主要梯度任务用于运行仪器测试:
assembleerelease
assembleeandroidtest
。前者执行生成应用程序
.apk
所需的操作。后者触发instrumentation testing
.apk
的组装,当instrumentation tests运行时(两者都在同一操作系统进程的上下文中运行),该组件将安装在测试设备上,与应用程序一起

<> > <代码> PRORADDFIX < /COD>在生成App<代码>时设置PROGART规则文件的列表。Apk< <代码> <强> >代码> TestPraveDebug文件对仪器<代码>相同。p>
因此,虽然命名很混乱,
testProguardFiles
对单元测试没有影响,但对于在支持ProGuard的项目中运行的插装测试来说,这很重要。

这些规则是针对apk的测试方法还是整个apk的。我的意思是测试规则应该包括调试规则吗?@Anthony testProguardFile仅用于测试apk,该文件被创建为app/build/outputs/apk/app-dev-debug-androidTest.apk,它从常规apk调用方法。测试规则不需要包括常规调试规则。