【问题标题】:Why coveralls does report the function or methods as not covered when body is covered?为什么在覆盖身体时工作服会报告未覆盖的功能或方法?
【发布时间】:2015-01-19 12:17:10
【问题描述】:

为什么coveralls在body被覆盖时会报告功能或方法未覆盖?

看看https://coveralls.io/files/431523503#L433 -- 整个身体都被覆盖了,但是方法没有被标记为被覆盖。

我检查了另一个项目 JavaScript 的覆盖率,它似乎适用于这些项目,所以我怀疑这是覆盖率或配置的错误。

更新:我开始相信这不是 Coveralls 的问题,而是 pytest-cov 的问题,因为即使生成的coverage.xml 似乎也将成员定义和 cmets 标记为 PyCharm 未涵盖(参见第 226 行,没有理由当全身被覆盖时认为它没有被覆盖)。

【问题讨论】:

  • 在本地运行coverage 会发生什么?报告显示的内容与工作服上的内容是否相同?我对my own project 没有同样的问题。

标签: python unit-testing code-coverage coveralls


【解决方案1】:

工作服只突出显示它被告知的线条

上传源文件时,由客户端将每一行标记为已覆盖或未覆盖,并且工作服仅呈现已提供的内容(请参阅API 文档)

如果您的工具没有正确标记线,那么工作服将不会呈现它

【讨论】:

    【解决方案2】:

    我设法解决了这个问题,这是由于我调用覆盖率的方式,我在开始覆盖率之前从模块中导入了一些东西。

    如果模块存在,则在您执行 python setup.py test 时在运行时添加覆盖。

    看看https://github.com/pycontribs/jira/blob/master/setup.py - 你会发现我在不导入模块的情况下从模块加载版本的技巧。

    在开始覆盖之前导入模块会使您陷入覆盖不完整或根本不运行的情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-18
      • 1970-01-01
      • 1970-01-01
      • 2022-10-26
      • 2018-07-27
      • 2021-05-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多