问题标签 [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.

0 投票
0 回答
130 浏览

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) 构建和运行很好,但它在单元测试和覆盖测试方面存在问题。

  1. 运行单元测试时,测试将通过但显示一些错误日志:
  1. 当尝试运行覆盖测试时,它只能通过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”

问题

  1. 如何解决Please supply original non-instrumented classesAS (fox) 中的错误?

  2. 如何解决test events were not not received

  3. jacoco 覆盖率测试结果 html 在哪里,它显示了覆盖率的详细信息?

0 投票
0 回答
23 浏览

android - android kotlin,覆盖测试失败,kotlin编译代码

具有 kotlin 功能,

它调用了:

但是覆盖测试总是失败并指向它(尽管使用具有 contentType 设置或未设置的响应模拟测试了这两种情况)

在此处输入图像描述

当查看反编译的 java 代码时,似乎有一个死代码,这是 jacoco 覆盖范围抱怨,

if (var2 == null)看起来永远不会是真的,所以块永远不会被切除:

如何使覆盖测试正常工作?

0 投票
0 回答
77 浏览

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 会干扰库模块的设备外代码覆盖,但不会干扰主应用程序模块?

0 投票
0 回答
28 浏览

android-studio - 使用 AdroidStudio Arctic Fox,在哪里可以找到 jacoco 覆盖率详细测试结果

使用 AndroidStudio 4.1.2 运行 jacoco 覆盖率测试时,在报告文件夹中有一个文件夹jacoco,其中有一个 index.html 文件,该文件可以用颜色显示未覆盖代码路径或分支的代码。它也有testDebugUnitTest文件夹旁边的jacoco文件夹,但没有代码覆盖率详细信息。

更新到AndroidStudio北极狐后,生成的reports文件夹中没有该jacoco文件夹。它只有testDebugUnitTest文件夹。中的 index.htmltestDebugUnitTest不显示覆盖/未覆盖的代码路径。

从哪里可以找到显示代码详细信息(例如代码路径/分支)的 jacoco 覆盖率报告,以了解它们是否被覆盖?

在此处输入图像描述

0 投票
1 回答
85 浏览

android - 为什么覆盖率工具 JaCoCo 报告 100% 覆盖率?

我通过编辑应用程序级别的 build.gradle 添加到我的项目 JaCoCo:

我的项目中真的没有任何测试,所以我期望覆盖率非常低。

但是跑步gradlew createDebugCoverageReport导致了100%的覆盖率?我期待 5% 或更低,因为我现在还没有写任何测试。那里有什么问题?

0 投票
0 回答
137 浏览

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 将需要

0 投票
0 回答
17 浏览

android - 如何在 Gradle 中构建后运行 Jacoco 任务

我制作了以下 jacoco.gradle 文件

我已通过包含以下代码将其包含在我的另一个模块 gradle 文件中,即主模块

我也做了 testCoverageEnabled true。

我还在 ./gradlew 任务中看到了代码覆盖率任务

我无法在 home gradle 文件中获取任务名称,它说不存在这样的任务。如何在构建期间运行代码覆盖率,即 /gradlew build。请帮忙。