【问题标题】:Incremental code coverage for Python unit tests?Python 单元测试的增量代码覆盖率?
【发布时间】:2018-09-01 23:49:30
【问题描述】:

如何获得关于 Python 代码覆盖率的增量报告?

我所说的“增量”是指自一些“最后”报告或特定 Git 提交以来覆盖行的变化。

我正在使用unittestcoverage(和coveralls.io)来获取代码覆盖率统计信息,这非常有用。但我只参与了项目的一部分,起初我担心我的最后一次提交发生了什么变化。我希望coverage 能够显示两个报告之间的差异,但到目前为止,除了在 HTML 输出上运行文本差异之外,还没有发现任何东西。

【问题讨论】:

  • 我怀疑这会因为要求软件推荐而关闭。可能这将是您的 CI 的一个功能(单元测试和覆盖不理解 git,这是有充分理由的)。你可以看看codeclimate,这是 IIRC 做的(开源也是免费的)。
  • @BaileyParker 谢谢你的来信。我不一定需要与 Git 集成(尽管那会很好),与“先前运行”的区别也很好。我希望coverage 能够显示两次运行之间的差异,但到目前为止,除了在 HTML 输出上运行文本差异之外,还没有发现任何东西。相应地更新了问题。
  • 啊,是的,我只是假设您使用的是coveralls.io,因此您使用的是版本控制。为了区分两次运行,(您需要做一些跑腿工作),但coverage xml 可以输出一个 xml 报告,您可以自己解析然后进行 diff(它还可以提供实用程序来为您解析 XML)。
  • 差异覆盖是工具github.com/Bachmann1234/diff-cover

标签: python unit-testing code-coverage python-unittest coverage.py


【解决方案1】:

我刚刚发布了类似问题的答案,它可能会有所帮助。比较之前的运行和当前的运行。

show-the-differences-in-two-test-coverage-runs

【讨论】:

    【解决方案2】:

    简介

    我使用pycobertura

    pycobertura diff --format html --output cov_diff.html coverage_old.xml coverage_new.xml


    详情

    我使用以下链(coverage):

    1. 生成覆盖率报告: python -m coverage run -m unittest

    2. 输出 cobertura 的 XML 格式: coverage xml --omit tests/* -o cover_old.xml

    3. -- 修改代码或签出较新的提交--

    4. 生成覆盖率报告: python -m coverage run -m unittest

    5. 输出 cobertura 的 XML 格式: coverage xml --omit tests/* -o cover_new.xml

    6. 生成差异:pycobertura diff --format html --output cov_diff.html coverage_old.xml coverage_new.xml

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-18
      • 2010-10-14
      • 2023-04-07
      • 2020-01-27
      • 1970-01-01
      相关资源
      最近更新 更多