java - 在带有 Gradle 的 Android 项目中使用 JaCoCo
问题描述
我有一个带有 Gradle 5.1.1 的 android 项目我想使用 JaCoCo 生成有关测试代码覆盖率的 HTML 报告。我尝试按照一些文章中的说明进行操作,但我的所有尝试都导致了错误。
对我有用的是应用插件'jacoco'(之后项目成功构建)。
apply plugin: 'jacoco'
但是,一旦我添加任务“jacocoTestReport”,Gradle 就无法与文件同步,并且出现此错误。
那是我的任务:
jacocoTestReport {
reports {
html.enabled true
xml.enabled false
csv.enabled false
html.destination file("${buildDir}/jacocoHtml")
}}
那是我的错误:
ERROR: Could not find method jacocoTestReport() for arguments [build_8kqk7qvpoocfxfydulk1p4m35$_run_closure3@1aba12a5] on project ':app' of type org.gradle.api.Project.
在“build.gradle”中添加“应用插件”后,我尝试使用“gradlew clean build”。教程作者成功添加任务并在终端中使用此行获取 jacoco 报告:
gradlew build jacocoTestReport
这是我用来了解如何将 jacoco 添加到项目中的文章的链接:
https://reflectoring.io/jacoco/
https://android.jlelse.eu/get-beautiful-coverage-reports-in-your-android-projects-ce9ba281507f
所以我的问题是:有没有办法使用 Gradle 将 Jacoco 添加到 Android 项目中?我究竟做错了什么?
解决方案
可能只是缺少复制粘贴,但请确保将函数定义为 gradle 中的任务,即: task jacocoTestReport(type: JacocoReport, dependsOn: ['testDebugUnitTest']) {
我按照这个博客在我的初始项目中设置了我的 Jacoco 实例,发现它很有帮助。https://engineering.rallyhealth.com/android/code-coverage/testing/2018/06/04/android-code-coverage.html
推荐阅读
- html - 悬停img时如何使div出现
- php - 通过多个时间间隔找到重叠的更好方法
- sql - SQL - 选择天而不是小时?
- file - How to download in-memory file from Blazor server-side
- c++ - 在 C++ 中,如何在第一个结束后才执行第二个'system()'?
- javascript - Django rest框架:自定义分页下一个/上一个链接
- phoenix-framework - Phoenix 似乎正在按字母顺序重新排序参数和模式匹配 - 这是正常的吗?
- python - 使用 Flask 测试脚本
- javascript - getElementsByTagName undefined return - 这是一个错误吗?
- swift - 获取“符合“LosslessStringConvertible”错误