当前位置: 首页 > 知识库问答 >
问题:

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

邬飞捷
2023-03-14

有人能帮我理解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的proguard规则文件呢。专业测试?如果我理解正确,当我进行仪器测试时,会生成一个单独的apk,但是如果我只进行单元测试,情况是否也是这样?

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

共有2个答案

戚俊人
2023-03-14

现在我知道它是什么testProguadFile('一些proGuard文件')给你的测试apk一个proGuard文件,在测试时使用。这允许我们使用proGuard文件测试我们的应用程序。运行测试时生成的测试apk将被proGuard混淆,然后测试将运行。这是测试proGuard可能在应用中创建的任何异常的好方法。

艾泉
2023-03-14

正如我试图在我的博客文章《为Android检测测试配置ProGuard》中解释的那样:

最初,运行插装测试大约有两个主要的、不同的Gradle任务:assembleereleaseassembleeandroidtest。前者执行生成应用程序所需的操作。apk。后者触发仪器测试的组装。apk,在运行检测测试时,它与应用程序一起安装在测试设备上(两者都在同一操作系统进程的上下文中运行)。

当代码生成>应用程序>代码时,要考虑PROGARDFILE < /CODE>设置PROGORD规则文件的列表。apk,testProguardFiles对检测执行相同的操作。apk

因此,虽然命名令人困惑,但testProGuard dFiles对单元测试没有影响,但对于在启用ProGuard的项目中运行的仪器测试很重要。

 类似资料:
  • 问题内容: 我需要测试一个函数,该函数的结果将取决于当前时间(使用Joda time的时间)。 是否可以使用(例如使用Mockito)存根/模拟系统时间,以便我可以可靠地测试该功能? 问题答案: Joda time支持通过类的和方法设置“假”当前时间。 参见https://www.joda.org/joda- time/apidocs/org/joda/time/DateTimeUtils.htm

  • 问题内容: 第3、16、17、18和19行用*突出显示的含义是什么。有人可以解释他们的工作吗?我是python和编程新手 问题答案: 这段代码中只有三行用*突出显示,但这是它们的意思: 第一行: 这是在声明 后面 的函数( test_Iframe 和 tearDown )的 类* 。在面向对象的编程中,使用一个类来创建“对象” 。可以将 类 视为数据/过程的抽象,而 对象 是类的特定实例。 ***

  • 问题内容: 第3、16、17、18和19行用*突出显示的含义是什么。有人可以解释他们的工作吗?我是python和编程新手 问题答案: 此代码中只有三行用*突出显示,但这是它们的含义: 第一行: 这是在声明 后面 的函数( test_Iframe 和 tearDown )的 类* 。在面向对象的编程中,使用一个类来创建“对象” 。可以将 类 视为数据/过程的抽象,而 对象 是类的特定实例。 ***

  • 单元测试 PHPUNIT本身是不支持异步框架的测试的,我们在使用PHPUNIT时,做了一些改变。 PHPUNIT中的注解无法生效 所有测试方法以unitDemo(),以unit开头。区别于test开头 测试建议,我们建议对聚合层与服务层统一做单元测试的编写。(数据库环境的配置,建议在config下面新增test配置文件,来跑单元测试) 聚合层测试示例 <?php namespace

  • 假设在下面的Maven项目结构中有和。 在IntelliJ IDEA中,有一个名为包和类的选项,可以将用于缩小代码覆盖率范围的数据包含在覆盖率中。 我想知道,例如,如果我想查看的覆盖率,我应该向本节添加哪些包?我认为,当我编写这个单元测试仅用于测试时,可以只将或其包添加到要包括在覆盖率数据部分的包和类中。那是真的吗?或者什么是正确的方法?

  • 我的类有一个方法,它尝试执行一些操作,并在所有操作完成后返回nano时间。当测试这个方法时,我遇到了一个问题,测试结果总是不同的(因为取决于当前时间)。 如何正确测试返回值?没有PowerMock有办法吗? 示例类: 示例测试: 感谢您的回答!