Android Build的覆盖范围

问题描述 投票:1回答:1

我试图基于gradle获得android项目的报道。

所以我为我的应用程序build.gradle添加了

jacoco { }

testCoverageEnabled true

内部调试。

这工作正常。我可以通过createDebugCoverageReportconnectedCheck获得报告。

问题是开发人员通常使用调试版本来运行和测试应用程序。因此,在该构建中启用代码覆盖可能会减慢构建速度,并且可能不需要此用法。

所以我想我会添加新的配置

coverage {
            initWith buildTypes.debug
            testCoverageEnabled true
}

不幸的是没有createCoverageCoverageReportconnectedCheck不运行覆盖类型。

当我使用dex2jar反编译apk并使用jd-gui查看内部时,我看到调试和覆盖内部的jacoco调用,所以它就在那里,但它不是由gradle插件启动覆盖。

这让我觉得覆盖范围只对调试版本进行了硬编码。

问题是:1。我认为我需要覆盖buildType是否可以?我认为调试版本应该与build 2分开构建.jacoco报告是否仅在调试版本中可用?如果不是如何在覆盖类型上运行它? 3.我在哪里可以找到Jacoco扩展的源代码。我想看看实现?我找到了thisbuild-system/gradle-core/src/main/groovy/com/android/build/gradle/internal/coverage/JacocoExtension.groovy,但我有一种感觉,它不是gradle插件使用的那个。

Repository I am trying this on

android gradle code-coverage jacoco
1个回答
1
投票

我得到了Gradle团队http://comments.gmane.org/gmane.comp.handhelds.android.adt.devel/5978的部分答复

基本上你需要将覆盖范围定义为测试构建,这是通过完成的

android { testBuildType "coverage" }

build.gradle。这只回答了为什么覆盖目标不存在于覆盖范围构建类型的原因。

© www.soinside.com 2019 - 2024. All rights reserved.