标签: coveralls

在单个存储库中获取工作服的多个覆盖率报告

是否可以为单个存储库获取单独的前端和后端测试报告?

似乎有一种可能的方法是将lcov报告连接成一个然后运送到工作服,如本问题所述.

但是,我想知道是否有办法查看前端和后端的单独代码覆盖率报告,或者为lcov工作服提供两个文件.如果是这样,怎么样?

lcov coveralls

61
推荐指数
1
解决办法
1595
查看次数

tox中的条件命令?(tox,travis-ci和工作服)

TL;博士:

我正在为我的一个项目设置CI,在github上托管,使用toxtravis-ci.在构建结束时,我converalls会将覆盖率报告推送到coveralls.io.我想让这个命令'有条件' - 只有当测试在travis上运行时才能执行; 不是当他们在我的本地机器上运行时.有没有办法让这种情况发生?

细节:

我正在尝试测试的包是一个python包.我正在使用/计划使用以下"基础架构"来设置测试:

  • 测试本身就是py.test多种多样的.
  • 可以说,CI脚本来自tox.这让我可以在本地运行测试,这对我来说非常重要.我不想每次需要测试运行时都要推送到github.我也用numpy,并matplotlib在我的包,因此在运行测试周期的空洞的数量上travis-ci似乎过于浪费在我身上.因此,放弃tox.travis.yml单独使用不是一种选择.
  • CI服务器是 travis-ci

相关的测试脚本如下所示:

.travis.yml

language: python
python: 2.7
env:
  - TOX_ENV=py27
install:
  - pip install tox
script:
  - tox -e $TOX_ENV
Run Code Online (Sandbox Code Playgroud)

tox.ini

[tox]
envlist = py27

[testenv]
passenv = TRAVIS TRAVIS_JOB_ID TRAVIS_BRANCH
deps =
    pytest
    coverage
    pytest-cov
    coveralls
commands =
    py.test --cov={envsitepackagesdir}/mypackage --cov-report=term --basetemp={envtmpdir}
    coveralls
Run Code Online (Sandbox Code Playgroud)

这个文件让我在本地运行测试.但是,由于最后的coveralls呼叫,测试原则上失败了:

py27 …
Run Code Online (Sandbox Code Playgroud)

python travis-ci tox coveralls

19
推荐指数
3
解决办法
1864
查看次数

Python代码覆盖和多处理

我将工作服coverage.py结合使用来跟踪测试脚本的python代码覆盖率.我使用以下命令:

coverage run --parallel-mode --source=mysource --omit=*/stuff/idont/need.py ./mysource/tests/run_all_tests.py
coverage combine
coveralls --verbose
Run Code Online (Sandbox Code Playgroud)

除了多处理之外,这非常有效.不跟踪工作池或子进程执行的代码.

是否有可能跟踪多处理代码?我遗失的任何特定选项?可能会在多处理库中添加包装器,以便在每次生成新进程时开始覆盖?

编辑:

我(和jonrsharpe,也:-)发现了一个用于多处理猴子补丁.

但是,这对我不起作用,我的Tracis-CI版本几乎在开始后就被杀死了.我检查了我的本地机器上的问题,显然是将补丁添加到多处理程序中破坏了我的记忆.使用此修复程序,占用少于1GB内存的测试需要超过16GB.

编辑2:

猴子补丁在经过一些小修改后确实有效:删除config_file解析(config_file=os.environ['COVERAGE_PROCESS_START'])就可以了.这解决了臃肿记忆的问题.因此,相应的行简单地变为:

cov = coverage(data_suffix=True)
Run Code Online (Sandbox Code Playgroud)

python code-coverage multiprocessing coverage.py coveralls

17
推荐指数
1
解决办法
3202
查看次数

为什么我的coveralls.io徽章即使在构建发生时也不会更新?

我正在尝试使用coveralls.io来显示我的测试的覆盖徽章,但是覆盖范围标记卡在"未知"上.

相关的回购在这里:https://github.com/cfogelberg/grunt-set-app-mode

当我看到coforls.io的那个回购时,我看到了相同的"覆盖:未知"状态:coveralls.io/r/cfogelberg/grunt-set-app-mode

但是,各个版本是正确发送到coveralls.io:https://coveralls.io/builds/788669

我错过了什么?

code-coverage github coveralls

16
推荐指数
4
解决办法
4868
查看次数

使用覆盖率信息测试Go中的os.Exit场景(coveralls.io/Goveralls)

这个问题:如何测试Go中的os.exit场景(以及其中最高的投票答案),阐述了如何os.Exit()在go中测试场景.由于os.Exit()不能轻易拦截,使用的方法是重新调用二进制文件并检查退出值.这个方法在Andrew Gerrand(Go团队的核心成员之一)的演示文稿第23页中描述; 代码非常简单,下面将全文转载.

相关的测试和主文件看起来像这样(请注意,这对文件本身就是一个MVCE):

package foo

import (
    "os"
    "os/exec"
    "testing"
)

func TestCrasher(t *testing.T) {
    if os.Getenv("BE_CRASHER") == "1" {
        Crasher() // This causes os.Exit(1) to be called
        return
    }
    cmd := exec.Command(os.Args[0], "-test.run=TestCrasher")
    cmd.Env = append(os.Environ(), "BE_CRASHER=1")
    err := cmd.Run()
    if e, ok := err.(*exec.ExitError); ok && !e.Success() {
        fmt.Printf("Error is %v\n", e)
    return
    }
    t.Fatalf("process ran with err %v, want exit status 1", err)
}
Run Code Online (Sandbox Code Playgroud)

package …
Run Code Online (Sandbox Code Playgroud)

architecture testing unit-testing go coveralls

13
推荐指数
2
解决办法
3157
查看次数

Coveralls GitHub 操作 - 错误:未找到 Lcov 文件

我正在使用 GitHub 操作配置工作服。

我进行了搜索,但找不到如何生成 ./coverage/lcov.info 文件。
当操作运行时,由于我没有这样的文件,我得到:

Using lcov file: ./coverage/lcov.info  
Error: Lcov file not found.
Run Code Online (Sandbox Code Playgroud)

我尝试通过 IntelliJ 使用 Coverage 运行测试,但我可以生成的唯一导出是 HTML 格式。

如何生成 lcov.info 文件?

编辑 - 根据评论中的要求添加我的工作流程以供参考

# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
name: "CodeQL"

on:
  push:
    branches: …
Run Code Online (Sandbox Code Playgroud)

java coveralls github-actions

12
推荐指数
1
解决办法
1090
查看次数

是否可以将多个包的承保范围发布到Coveralls?

我想跟踪使用Coveralls的go项目的测试覆盖率,使用https://github.com/mattn/goveralls进行集成参考的说明

cd $GOPATH/src/github.com/yourusername/yourpackage
$ goveralls your_repos_coveralls_token
Run Code Online (Sandbox Code Playgroud)

但是,这仅发布一个包的结果,并且依次运行包不起作用,因为最终运行会覆盖所有其他运行.有没有人想出如何获得多个包裹的报道?

go coveralls

11
推荐指数
2
解决办法
4576
查看次数

如何使用 Github Action 配置工作服?

我的 github 存储库配置出现问题。这是 - umbress。我启用并配置了 Github Actions CI,我希望在我的 repo 中有覆盖徽章,这样每个想要在他们的项目中使用我的代码的人都知道我的代码经过了良好的测试。但似乎我错过了一些东西,因为我的报道徽章已经有很长一段时间了。

CI步骤是:

  1. 运行构建
  2. 运行测试并生成覆盖率 ( jest --coverage --config config/jest.js)。这将./coverage/lcov.info在根目录中生成
  3. 最后Coveralls GitHub Action应该将覆盖范围上传到他们的网站并显示结果

有几个问题:

  1. 当我根据拉取请求运行构建时,它会显示“首次构建”(但事实并非如此,我已经在这个分支上运行了很多构建) github 操作
  2. 覆盖率信息在测试后向我展示的笑话和 Coveralls 统计数据中显示的内容不同(即在 Coveralls 中它说FIRST BUILD ON DEVELOPER AT 90.072%,但根本没有这样的百分比!覆盖的行是93.43%,平均所有的是89.4%
  3. 无论我尝试更改,覆盖标志都是“未知”

我做错了什么,我应该怎么做才能解决这个问题?

continuous-integration code-coverage coveralls github-actions

8
推荐指数
1
解决办法
2338
查看次数

Python 项目代码覆盖率徽章与工作服/github 操作

我正在尝试将代码覆盖率 % 徽章添加到我的存储库 README.md 中

我目前正在使用 Github actions 来自动化我的 pytest 测试。我自己就完成了这个工作,但我一直在努力获得覆盖率%徽章。我正在使用工作服来生成徽章,并且基于它,工作服看起来需要一个 lcov.info 文件。但是当我查看pytest-cov 的报告选项时,我没有看到相应的输出选项。

我尝试生成其他类型(例如 xml)并配置以查找此类型,但它仍然在覆盖文件夹中查找 lcov.info。下面是我当前的 pythonapp.yml 文件。当前失败的步骤是寻找工作服./coverage/lcov.info

任何有关我做错了什么或如何修复的帮助将不胜感激。

name: tests

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: Set up Python 3.7
      uses: actions/setup-python@v1
      with:
        python-version: 3.7
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install -r requirements.txt
    - name: Lint with flake8
      run: | …
Run Code Online (Sandbox Code Playgroud)

github pytest coveralls pytest-cov github-actions

8
推荐指数
1
解决办法
5350
查看次数

特拉维斯ci失败了摩卡+工作服

travis ci失败,因为记者的输出是空字符串.

NODE_ENV=test YOURPACKAGE_COVERAGE=1 mocha --compilers coffee:coffee-script/register --require blanket --reporter mocha-lcov-reporter | ./node_modules/coveralls/bin/coveralls.js
Run Code Online (Sandbox Code Playgroud)

它在我的本地工作正常.

> mocha --compilers coffee:coffee-script/register --require blanket --reporter mocha-lcov-reporter | ./node_modules/coveralls/bin/coveralls.js
[error] "2015-04-26T12:41:57.904Z"  'error from lcovParse: ' 'Failed to parse string'
[error] "2015-04-26T12:41:57.906Z"  'input: ' ''
[error] "2015-04-26T12:41:57.906Z"  'error from convertLcovToCoveralls'
Run Code Online (Sandbox Code Playgroud)

mocha.js travis-ci coveralls

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