问题标签 [android-jacoco]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android-studio - 更新到 Android Studio (fox) 2020.3.1 patch3 单元测试/覆盖测试不起作用
让一个 android 库项目在 AS 4.1.2 上运行良好。
刚刚安装了 Android studio (fox) 2020.3.1 补丁 3,没有做任何更改(除了将 sdk jre 设置为 java 8,版本 18.6.0_60,因为项目正在使用JavaVersion.VERSION_1_8
)。
使用新的 AS(fox) 构建和运行很好,但它在单元测试和覆盖测试方面存在问题。
- 运行单元测试时,测试将通过但显示一些错误日志:
- 当尝试运行覆盖测试时,它只能通过
Rnu xxxtest with coverage
不像在 AS 4.1.2 中,它可以从 Gradle 窗格/任务中运行覆盖测试:
同样在 AS 4.1.2 中,它可以在 build/report/jacoco 文件夹中查看覆盖率测试报告:
在新的 AS(fox) 中,它失败了很多test events were not not received
在新的 AS(fox) 中,在 build/report 文件夹中,它找不到结果的 jacoco 文件夹(html 文件告诉覆盖测试结果是什么,即分支是如何覆盖的)。
相关依赖:
Gradle:类路径“com.android.tools.build:gradle:4.0.0”distributionUrl=https://services.gradle.org/distributions/gradle-6.8.3-bin.zip
测试:
类路径“org.jacoco:org.jacoco.core:0.8.1”
问题
如何解决
Please supply original non-instrumented classes
AS (fox) 中的错误?如何解决
test events were not not received
?jacoco 覆盖率测试结果 html 在哪里,它显示了覆盖率的详细信息?
android - 如果 testCoverageEnabled 为真,为什么为 Android 设备外测试生成的 JaCoCo .exec 文件几乎为空,但仅适用于库模块?
我正在一个带有应用程序模块和库模块的多模块 Android 项目中工作。如果我简单地添加
到build.gradle
每个模块,然后当我从每个模块目录中的命令行运行设备外单元测试时,我看到创建的 .exec 文件build/jacoco/testDebugUnitTest.exec
大小约为 27k 左右。由此生成报告符合我的预期。
如果我添加
到每个模块的 build.gradle (这样我以后也可以收集设备上测试的覆盖率)然后当我运行设备外单元测试时,.exec 文件改为在build/outputs/unit_test_code_coverage/debugUnitTest/testDebugUnitTest.exec
.
更重要的是,虽然当我在应用程序模块中运行测试时该文件仍然约为 27k,但当我在同一项目的库模块中运行测试时,它几乎是空的(只有 45 个字节)。
是否有原因 testCoverageEnabled 会干扰库模块的设备外代码覆盖,但不会干扰主应用程序模块?
android-studio - 使用 AdroidStudio Arctic Fox,在哪里可以找到 jacoco 覆盖率详细测试结果
使用 AndroidStudio 4.1.2 运行 jacoco 覆盖率测试时,在报告文件夹中有一个文件夹jacoco
,其中有一个 index.html 文件,该文件可以用颜色显示未覆盖代码路径或分支的代码。它也有testDebugUnitTest
文件夹旁边的jacoco
文件夹,但没有代码覆盖率详细信息。
更新到AndroidStudio北极狐后,生成的reports文件夹中没有该jacoco
文件夹。它只有testDebugUnitTest
文件夹。中的 index.htmltestDebugUnitTest
不显示覆盖/未覆盖的代码路径。
从哪里可以找到显示代码详细信息(例如代码路径/分支)的 jacoco 覆盖率报告,以了解它们是否被覆盖?
android - 为什么覆盖率工具 JaCoCo 报告 100% 覆盖率?
我通过编辑应用程序级别的 build.gradle 添加到我的项目 JaCoCo:
我的项目中真的没有任何测试,所以我期望覆盖率非常低。
但是跑步gradlew createDebugCoverageReport
导致了100%的覆盖率?我期待 5% 或更低,因为我现在还没有写任何测试。那里有什么问题?
android-studio - Gradle 任务 :app:createDebugAndroidTestCoverageReport 失败,为什么?
当我运行gradlew createDebugCoverageReport
它失败时:
任务 :app:connectedDebugAndroidTest 在 Tablet_Sv2(AVD) 上开始 1 次测试 - 12
测试结果保存为文件:/../app/build/outputs/androidTest-results/connected/flavors/app/Tablet_Sv2(AVD)%20-%2012/test-result.pb。通过从菜单栏中选择 Run > Import Tests From File 并导入 test-result.pb,在 Android Studio 中检查这些结果。
任务 :app:createDebugAndroidTestCoverageReport 失败
FAILURE:构建失败并出现异常。
- 出了什么问题:任务“:app:createDebugAndroidTestCoverageReport”执行失败。
执行 com.android.build.gradle.internal.coverage.JacocoReportTask$JacocoReportWorkerAction 时发生故障无法生成 Jacoco 报告
为什么?
编辑: 根据这个答案,应用程序级别 build.gradle 将需要
android - 如何在 Gradle 中构建后运行 Jacoco 任务
我制作了以下 jacoco.gradle 文件
我已通过包含以下代码将其包含在我的另一个模块 gradle 文件中,即主模块
我也做了 testCoverageEnabled true。
我还在 ./gradlew 任务中看到了代码覆盖率任务
我无法在 home gradle 文件中获取任务名称,它说不存在这样的任务。如何在构建期间运行代码覆盖率,即 /gradlew build。请帮忙。