2015-03-27 15 views
5

Tôi đang sử dụng vùng phủ sóng của Python để kiểm tra ứng dụng của mình. Nhìn vào các nhà phát triển khác trên GitHub, tôi thấy họ có một huy hiệu nhỏ cho thấy tỷ lệ phần trăm bảo hiểm. Sử dụng mức độ phù hợp, làm cách nào tôi có thể tạo các huy hiệu này?Huy hiệu phủ sóng của Python, cách tải chúng?

Huy hiệu bảo hiểm là biểu tượng tôi đang xem bên dưới.

badges

Cập nhật: Có nhiều gói mà tạo ra phù hiệu ví dụ: mũi-htmloutput! Cool

+1

Không dám nhấp vào chúng. – Carsten

+0

Các huy hiệu đó thường liên kết với dịch vụ cụ thể cung cấp chúng. Mỗi huy hiệu thường được cung cấp bởi một dịch vụ khác. –

+0

@Carsten Tôi đã thấy những người khác nhau sẽ đến nhiều dịch vụ bên thứ 3 khác nhau khi được nhấp. Nhưng những gì tôi muốn thực sự biết là nếu đây là một cái gì đó thực sự tạo ra bởi các gói bảo hiểm i..e như báo cáo bảo hiểm html mà có thể được bao gồm. – Prometheus

Trả lời

4

Nếu bạn muốn tạo phù hiệu trên của riêng bạn, bạn có thể thử để nạp tỷ lệ che phủ tổng và sau đó tạo ra một hình ảnh, someting như thế này:

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) 

simple coverage badge

+0

Câu trả lời tuyệt vời! Đúng thứ tôi cần! – Prometheus

+2

Có một cách dễ dàng hơn nhiều so với việc viết chương trình này: sử dụng [shields.io] (http://shields.io). –

+0

@NedBatchelder Vâng tôi đã phát hiện ra rằng hôm nay là tốt. Vẫn đang suy nghĩ về việc tạo ra một mô-đun để làm cho những phù hiệu đó. – Carsten

6

Bạn có thể nhấp vào trên các huy hiệu đó và thường sẽ đưa bạn đến dịch vụ cung cấp chúng.

Các huy hiệu bảo hiểm được cung cấp bởi https://coveralls.io/:

yếm là một dịch vụ web để giúp bạn theo dõi mã số bảo hiểm của bạn theo thời gian, và đảm bảo rằng tất cả các mã mới của bạn được hoàn toàn bao phủ.

Có nhưng là một trong những điều kiện tiên quyết:

  • Mã của bạn phải được lưu trữ trên GitHub

Một khi bạn đã đăng ký và bao gồm các cấu hình cần thiết và tích hợp hoặc gói khi đang phát triển, bạn được cung cấp một URL hình ảnh để đưa vào tài liệu dự án của mình; dự án python-coveralls có:

.. image:: https://coveralls.io/repos/z4r/python-coveralls/badge.png?branch=master 
    :target: https://coveralls.io/r/z4r/python-coveralls 

trong README của họ ví dụ, mà ám như:

1

+0

Cảm ơn bạn đã trả lời, tôi đã nghĩ rằng đây là một cái gì đó được tạo ra bởi các gói bảo hiểm chính nó. Cảm ơn – Prometheus

+0

Tôi đã tìm thấy các gói thực hiện việc này mà không cần bên thứ ba tức là mũi-htmloutput – Prometheus

+0

@OrbiterFleet: lưu ý rằng không lưu trữ hình ảnh ở bất kỳ đâu. Nếu bạn đang nói về hình ảnh bảo hiểm trên các trang PyPI và GitHub của họ, thì nó vẫn được xử lý bởi coveralls.io. –

0

Tôi đã viết gói tạo huy hiệu python tạo huy hiệu rất giống với các dịch vụ huy hiệu chính. Nó rất linh hoạt, bạn có thể nhập và sử dụng trong mã python của bạn, hoặc chạy từ dòng lệnh. Nó rất đơn giản và độc lập.

Bạn có thể đặt nhãn và giá trị huy hiệu và bạn có thể đặt màu dựa trên ngưỡng.Có các cài đặt được tạo sẵn cho thành công, độ bao phủ và đường dẫn, nhưng bạn có thể tạo bất kỳ huy hiệu nào bạn thích.

Dưới đây là một liên kết đến các dự án github với tài liệu hướng dẫn chi tiết hơn: https://github.com/jongracecox/anybadge

Cài đặt với mã python pip install anybadge

Ví dụ:

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') 

Ví dụ dòng lệnh sử dụng:

anybadge --label pylint --value 2.22 --file pylint.svg 2=red 4=orange 8=yellow 10=green 
Các vấn đề liên quan