Python 单元测试的增量代码覆盖率?

Incremental code coverage for Python unit tests?

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

"incremental",我的意思是自某些 "last" 报告或特定的 Git 提交以来所涵盖的行发生了哪些变化。

我正在使用 unittestcoverage(以及 coveralls.io)来获取代码覆盖率统计信息,效果很好。但我只参与了项目的一部分,起初我关心的是 我上次提交 发生了什么变化。我希望 coverage 能够显示两个报告之间的差异,但到目前为止还没有发现 HTML 输出上的 运行 文本差异。

简介

我用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

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

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