Pro*_*eus 12 python django code-coverage
我正在使用Python覆盖来测试我的应用程序.看看GitHub上的其他开发者,我看到他们有一个小徽章,显示了覆盖率.使用coverage,我该如何生成这些徽章?
我正在看下面的覆盖徽章.

更新:有一些包生成徽章,即nose-htmloutput!凉
您可以单击这些徽章,它通常会将您带到提供它们的服务.
保险范围徽章由https://coveralls.io/提供:
Coveralls是一项Web服务,可帮助您跟踪代码覆盖率,并确保完全覆盖您的所有新代码.
只有一个先决条件:
- 您的代码必须托管在GitHub上
一旦您在开发时注册并包含所需的配置和集成或软件包,您将获得一个图像URL以包含在项目文档中; 该python-coveralls项目有:
.. image:: https://coveralls.io/repos/z4r/python-coveralls/badge.png?branch=master
:target: https://coveralls.io/r/z4r/python-coveralls
Run Code Online (Sandbox Code Playgroud)
例如,在他们的README中,它呈现为:
根据 Carsten 的回答,PyPI 上现在有一个 MIT 许可的工具,用于生成 SVG 覆盖徽章:
https://github.com/dbrgn/coverage-badge
https://pypi.python.org/pypi/coverage-badge
如果您想自己生成徽章,则可以尝试加载总覆盖率百分比,然后创建图像,如下所示:
from PIL import Image, ImageDraw, ImageFont
from coverage import coverage
cov = coverage()
cov.load()
total = cov.report()
# total = 79.0
im = Image.new("RGB", (120, 20))
fnt = ImageFont.load_default()
d = ImageDraw.Draw(im)
d.text((10, 5), "coverage:", fill=(255, 255, 255), font=fnt)
d.rectangle([(80, 0), (150, 20)], fill=(220, 0, 0))
d.text((90, 5), "{:.0f}%".format(total), fill=(0, 0, 0), font=fnt)
Run Code Online (Sandbox Code Playgroud)

我编写了一个 python 徽章生成包,它生成的徽章在视觉上与主要徽章服务非常相似。它非常灵活,您可以在 python 代码中导入和使用,或者从命令行运行。它很简单,而且独立。
您可以设置徽章标签和值,并且可以根据阈值设置颜色。有针对 pylint、覆盖范围和管道成功的预构建设置,但您可以创建您喜欢的任何徽章。
以下是 github 项目的链接,其中包含更详细的文档: https: //github.com/jongracecox/anybadge
安装与pip install anybadge
示例Python代码:
import anybadge
# Define thresholds: <2=red, <4=orange <8=yellow <10=green
thresholds = {2: 'red',
4: 'orange',
6: 'yellow',
10: 'green'}
badge = anybadge.Badge('pylint', 2.22, thresholds=thresholds)
badge.write_badge('pylint.svg')
Run Code Online (Sandbox Code Playgroud)
命令行使用示例:
anybadge --label pylint --value 2.22 --file pylint.svg 2=red 4=orange 8=yellow 10=green
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3093 次 |
| 最近记录: |