标签: codecov

为什么JaCoCo不覆盖我的String switch语句?

我有一个switch声明从a String和我编写的单元测试中提取一个寻址模式来覆盖,我认为是每个可能性但JaCoCo似乎跳过我的switch陈述,导致覆盖率降低.

为什么,如果我的所有case语句(包括默认值)都在测试中执行,那么该switch语句是否会被计为命中?

(参见CodeCov中显示的测试结果)

在此输入图像描述

java junit switch-statement jacoco codecov

18
推荐指数
1
解决办法
8181
查看次数

codecov 在 github 操作中失败

背景

  • 到目前为止,我对 codecov 的设置运行良好

    • 您可以在此处定期更新每个 pr 提交的内容
    • 我没有更改我的存储库设置
  • 因为我无意中推送了一个不应该推送的文件夹,
    然后我合并了一个pr来删除该文件夹

  • 这是我的codecov.yml

问题

  • 在前面提到的最后一个公关中,上面链接的 github 操作 ci 抱怨了下面的日志
  _____          _
 / ____|        | |
| |     ___   __| | ___  ___ _____   __
| |    / _ \ / _` |/ _ \/ __/ _ \ \ / /
| |___| (_) | (_| |  __/ (_| (_) \ V /
 \_____\___/ \__,_|\___|\___\___/ \_/
                              Bash-1.0.3


==> git version 2.31.1 found
==> curl 7.68.0 (x86_64-pc-linux-gnu) libcurl/7.68.0 OpenSSL/1.1.1f zlib/1.2.11 …
Run Code Online (Sandbox Code Playgroud)

code-coverage codecov github-actions

10
推荐指数
1
解决办法
8127
查看次数

让 llvm-cov 与 codecov.io 对话

我正在(终于!)为我全新的 C++ 项目设置代码覆盖率监控。由于我需要一些高级 C++20 功能(读取、协程),我将其clang 6用作编译器。

现在,我按照本指南了解如何为您的项目进行基本代码覆盖,一切都像魔术一样工作。如果我做:

clang++ -fprofile-instr-generate -fcoverage-mapping test.cpp -o test.out
LLVM_PROFILE_FILE="coverage/test.profraw" ./test.out
llvm-profdata merge -sparse coverage/test.profraw -o coverage/test.profdata
llvm-cov show ./test.out -instr-profile=coverage/test.profdata
Run Code Online (Sandbox Code Playgroud)

我在我的终端上收到一份漂亮的彩色报告,告诉我哪些内容被覆盖,哪些未被覆盖。

到现在为止还挺好!我以为我已经接近我想要的东西了,但是当我试图将报告上传到codecov.io时,痛苦就开始了。

我尝试了几件事,包括:

  • https://codecov.io/bash在我的coverage文件夹上运行他们的脚本,希望它可能会赶上我的test.profdata. 没有骰子,这是有道理的,因为甚至llvm-cov需要可执行文件的路径才能运行。

  • 使用export功能:运行时llvm-cov export --instr-profile=coverage/test.profdata ./test.out我得到一个漂亮的 JSON 文件(通过终端)。我尝试将输出放入一个coverage.json文件中,该文件实际上已上传,但是 codecov 只是说解析它时出错,没有进一步的信息。

我感觉完全迷失了。在他们的网站上,一切似乎都是黑箱式的,我只是不明白如何完成任何不完全符合他们可以管理的情况的事情。

我如何才能使用 codecov 进行此操作?如果 codecov 无法处理我的报告,是否还有其他等效的在线代码覆盖率可用于使其正常工作?

code-coverage llvm-cov codecov

9
推荐指数
1
解决办法
978
查看次数

codecov无法使用pytest收集数据-“ Coverage.py警告:未收集任何数据。”

我正在尝试在我的公共travis存储库上设置codecov,到目前为止,还无法成功生成报告并将其上载到codecov.io。我似乎在终端上收到了一个错误的报告,说我的代码中有0%被警告覆盖了。

据我所知,我的.travis.yml和shell脚本完全符合pytest-cov和codecov文档中指定的约定。

我的travis终端包含完整的日志在这里:https : //www.travis-ci.com/jmaggio14/imagepypelines/jobs/163802897#L681

我的回购可以在这里找到:https : //github.com/jmaggio14/imagepypelines/tree/89a6bbc2fadc94a51570d80be356941df1a87a87

我的(缩短的).travis.yml文件如下:

 sudo: false

  language: python

  python:
      - 2.7
      - 3.4
      - 3.5
      - 3.6

  install:
    # I removed some other lines for readability here
    - pip install codecov pytest-cov hypothesis

  script:
    # running tests and code coverage report
    - py.test --cov=imagepypelines tests/


  after_success:
    - codecov
Run Code Online (Sandbox Code Playgroud)

我最终收到以下警告和一条消息,指出我的测试覆盖了我的代码的0%

Coverage.py warning: No data was collected. (no-data-collected)
Run Code Online (Sandbox Code Playgroud)

python pytest travis-ci codecov pytest-cov

9
推荐指数
1
解决办法
960
查看次数

Go:当没有对包进行测试时错误的覆盖范围

我有一个具有以下结构的 Go 项目:

foo/foo.go
foo/foo_test.go
main.go
Run Code Online (Sandbox Code Playgroud)

如您所见,没有针对main.go.

我使用以下命令收集覆盖率报告:

go test ./foo ./ -coverprofile=coverage.txt -covermode=atomic
Run Code Online (Sandbox Code Playgroud)

在这里./foo./显示在哪里寻找包裹。

问题:我将覆盖率报告发送到 codecov.io,它显示我的代码 100% 被测试覆盖。但这不是真的,因为我main.go根本没有测试。

系统似乎只计算那些明确指定测试文件的包。

问题:如何修复覆盖率报告以计算有关未测试包的信息?

注意:你可以在GitHub 上找到我的项目,真正的统计数据在这里。该项目具有不同的结构,但问题仍然存在(错误的覆盖范围)。

code-coverage go codecov go-testing

7
推荐指数
1
解决办法
1329
查看次数

在 GitHub Actions .yaml 中为 R 包配置 codecov 令牌

我正在尝试为 GitHub Actions 将运行的公共 R 包设置 codecov 监控covr::codecov。我正在查看这个 .yaml 示例(来源):

  - name: Test coverage
    if: matrix.r == '3.6'
    run: |
      Rscript -e 'remotes::install_github("r-lib/covr@gh-actions")'
      Rscript -e 'covr::codecov(token = "${{secrets.CODECOV_TOKEN}}")'
Run Code Online (Sandbox Code Playgroud)

将我的 codecov 令牌放在 .yaml 文件中代替上述示例的位置对我来说安全CODECOV_TOKEN吗?

r codecov github-actions

7
推荐指数
1
解决办法
651
查看次数

Heroku CI 的代码覆盖率

我们正在将我们的 repo 私有化,并已将我们的 CI 转移到使用 Heroku 的服务。我们现在正在努力研究如何获得代码覆盖率报告,以便我们不会与减少的覆盖率合并。我正在努力研究如何生成这样的报告,因为之前 travis 与 codecov 一起为我们处理了这个问题。

Code cov文档说 Heroku CI 不是他们支持的 CI 服务之一。而且我还没有找到有关 CodeCov 对 Heroku CI 的支持的任何信息。有谁知道是否有 Heroku 支持的免费代码覆盖工具?

code-coverage codecov heroku-ci

6
推荐指数
0
解决办法
419
查看次数

Codecov:覆盖率和复杂度

我正在测试一个项目,并使用 Codecov 发布测试的覆盖率。Codecov 使用 Jacoco 生成的报告,到目前为止效果良好。Codecov 不仅显示覆盖率,还显示测试的复杂度。

我对这个复杂率有两个问题,我在文档中找不到答案:

  1. 复杂度到底是多少?Codecov 如何衡量它?

  2. 所测试的项目是一个maven多模块项目。当我在 POM 中激活 jacoco 插件的 report-aggregate-goal 时,为了聚合每个模块的报告,结果在 codecov 上不会显示复杂性:

在此输入图像描述

但是当我不激活插件时,就会计算复杂度: 在此输入图像描述

为什么会这样呢?

jacoco jacoco-maven-plugin codecov

6
推荐指数
0
解决办法
4017
查看次数

为什么带有 lcov 的 codecov 在 Travis 上无法正常工作,但在我的本地 Linux Mint 上无法正常工作?

我尝试将Codecov添加到我的库的CI 构建系统中。该特拉维斯脚本像这个样子:

lcov --directory . --capture --output-file coverage.info --gcov-tool gcov-8 # capture coverage info
lcov --remove coverage.info '/usr/*' --output-file coverage.info # filter out system
lcov --list coverage.info # debug info
# Uploading report to CodeCov
bash <(curl -s https://codecov.io/bash) || echo "Codecov did not collect coverage reports"
Run Code Online (Sandbox Code Playgroud)

当我在本地 Linux Mint 机器上运行这些命令时,一切都按预期工作。但在 Travis 上则不然。报告看起来像这样:

Capturing coverage data from .
Found gcov version: 8.1.0
Scanning . for .gcda files ...
geninfo: WARNING: /home/travis/build/AMS21/Andres-Standard-Library/CMakeFiles/unittest.dir/test/src/cstddef/offsetof_test.cpp.gcno: Overlong …
Run Code Online (Sandbox Code Playgroud)

c++ gcov lcov codecov

5
推荐指数
1
解决办法
2066
查看次数

使用kcov进行防锈覆盖似乎不正确

当我使用codecov.io记录我的Rust项目的代码覆盖率时,覆盖范围似乎不正确.

  1. 所述unwrap()功能和端托架未覆盖

    展开和末端支架未盖住

  2. 函数声明不包括在内

    功能声明未涵盖

这很奇怪.


我无法提供完整的复制项目.

我正在使用Rust的标准TravisCI配置.这是我的.travis.yml:

language: rust
cache: cargo
dist: trusty
sudo: required

rust:
  - stable
  - beta
  - nightly

matrix:
  allow_failures:
    - rust: nightly

script:
  - cargo build --verbose --all
  - cargo test --verbose --all

after_success: |
  wget https://github.com/SimonKagstrom/kcov/archive/master.tar.gz &&
  tar xzf master.tar.gz &&
  cd kcov-master &&
  mkdir build &&
  cd build &&
  cmake .. &&
  make &&
  make install DESTDIR=../../kcov-build &&
  cd ../.. &&
  rm -rf kcov-master &&
  for file in target/debug/myproject-*[^\.d]; do mkdir -p …
Run Code Online (Sandbox Code Playgroud)

rust kcov codecov

5
推荐指数
1
解决办法
392
查看次数