簡體   English   中英

使用coverage.py在python中進行代碼覆蓋

[英]code coverage in python using coverage.py

我正在嘗試了解python腳本的運行范圍。 我無法理解我嘗試為具有無限循環的簡單腳本運行覆蓋率的情況:

#!/usr/bin/python

print "The only statement!!!"

while True:
    pass

在調用此腳本的覆蓋范圍后,由於這是一個無限循環,因此我將終止此過程,如果我嘗試獲得結果,我將得到:

  1. 覆蓋范圍運行sample.py
  2. 殺死樣品
  3. 覆蓋率報告-m

Name Stmts Miss Cover Missing -------------------------------------

我沒有任何覆蓋率報告。 我在做一些根本上是錯誤的事情嗎?

coverage需要能夠在程序結束時將其數據寫出,並且如果它不能處理退出信號,那么它將不會生成報告。

因此,這取決於您如何終止進程以及coverage如何處理信號-使用Ctrl + C(即發送SIGINT)來中斷sample.py時,對我來說效果很好

$ coverage run sample.py
The only statement!!!
Traceback (most recent call last):
  File "sample.py", line 5, in <module>
    while True:
KeyboardInterrupt

$ coverage report -m
Name     Stmts   Miss  Cover   Missing
--------------------------------------
sample       3      0   100%

如果使用不帶任何選項的kill實用程序,則默認情況下將發送SIGTERM,請嘗試使用kill -INT <pid>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM