當前位置:
首頁 > 知識 > Python代碼覆蓋性測試入門

Python代碼覆蓋性測試入門


覆蓋測試通過代碼分析工具和跟蹤鉤子來判斷哪些代碼可執行以及哪些代碼被執行了,是對單元測試的有效補充,可以用來判斷測試的有效性。


Python擴展庫coverage可以實現對Python代碼的覆蓋測試,使用pip工具安裝之後,可以使用命令「coverage run file.py」對Python程序file.py進行覆蓋測試,然後使用命令「coverage report」直接查看測試報告,或者使用命令「coverage html」生成HTML文件的測試報告,這些HTML文件自動保存在htmlcov文件夾中。可以使用命令「coverage help」查看coverage支持的所有命令。


想要一起學習python的可以加裙五五六九八二零四九,有很多大神一起學習交流,有資源,然後可以訂閱轉發一下


例如,有下面的代碼用來判斷一個整數是否為素數:


from random import randint

def isPrime(n):


for i in range(2, int(n**0.5)+1):


if n%i == 0:


return "No"


else:


return "Yes"


n = randint(3, 2000)


print(n, ":", isPrime(n))


把上面的代碼保存為isPrime.py,然後在命令提示符環境中首先執行命令「coverage run isPrime.py」測試,再執行命令「coverage report」查看測試報告。-m選項用來顯示沒有被執行到的代碼行號,可以使用命令「coverage report -h」查看更多選項。


想要一起學習python的可以加裙五五六九八二零四九,有很多大神一起學習交流,有資源,然後可以訂閱轉發一下

C:Python 3.5>coverage run isPrime.py


1862 : No


C:Python 3.5>coverage report


Name Stmts Miss Cover


--------------------------------


isprime.py 8 1 88%


C:Python 3.5>coverage report -m


Name Stmts Miss Cover Missing


------------------------------------------


isprime.py 8 1 88% 8

另外,擴展庫coverage還提供了編程介面支持代碼覆蓋測試。例如,把上面的素數判斷程序修改為下面的代碼並執行,會自動生成測試報告。


import coverage


from random import randint


cov = coverage.Coverage()


cov.start()


def isPrime(n):


for i in range(2, int(n**0.5)+2):


if n%i == 0:


return "No"


else:

return "Yes"


n = randint(3, 2000)


print(n, ":", isPrime(n))


cov.stop()


cov.save()


cov.html_report()


想要一起學習python的可以加裙五五六九八二零四九,有很多大神一起學習交流,有資源,然後可以訂閱轉發一下



Python代碼覆蓋性測試入門


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python 的精彩文章:

Python基礎新手學習需要注意的技術問題總結
缺少Python項目實踐經驗怎麼辦
給想轉行學習Python的朋友提些建議及學習路線望少走點彎路
基於Python+tkinter+pygame音樂播放器源碼

TAG:Python |

您可能感興趣

內褲是覆蓋性器的一小塊布,女人穿著它也像胸罩般自戀與誘惑異性