前言
使用pytest-cov 無法統計用 api調用服務的測試腳本所覆蓋率,但大部分的項目基本也是使用api調用。所以我們額外需要使用coverage.py api 來統計。
當你安裝pytest-cov時,已經默認安裝了coverage 這個庫。
服務啟動
要想掃描到代碼,必須在服務啟動的時候要插入coverage相關配置。
我這邊是flask 啟動的,所以在flask啟動的代碼上添加,如下:
if
__name__
==
'__main__'
:
cov
=
Coverage
(
)
cov
.
start
(
)
# 開始檢測代碼
print
(
"qidong"
)
app
.
run
(
debug
=
True
,
host
=
'0.0.0.0'
,
port
=
9098
)
#原本只有這一行
cov
.
stop
(
)
# 停止紀錄
print
(
"guanbi"
)
cov
.
save
(
)
# 保存在 .coverage 中
print
(
"save"
)
cov
.
html_report
(
)
# 生成 HTML 報告
原本我們是python xx.py 這樣啟動,但現在不可以。
需要改成這樣,source 表示目錄,xx表示執行文件。
coverage run --source='/xxx/' xx.py
啟動運行圖如下:
然后調用你的自動化腳本(自動化腳本是直接調的該服務提供的api 。)
自動化如果正常運行,能看到運行的請求
以上說明你的腳本跟服務是沒問題的
ctr-c停掉該腳本后,最后顯示save,如果顯示”Coverage.py warning: No data was collected. (no-data-collected)“ 說明的服務運行方式有問題,coverage 服務沒有運行到你代碼
報告生成
輸入以下命令
coverage report
最后一步最后輸入
coverage html
這樣就可以省 html 文件了。
導出在window上看,具體點擊某個文件,點擊run,你可以看到綠色的就是運行的。但有問題是,你會發現有些代碼應該是要被執行,但卻沒有被執行。所以coverage的數據準不準很難說。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
