日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

python代碼覆蓋率(下)--- coverage.py api

系統(tǒng) 2268 0

前言

使用pytest-cov 無法統(tǒng)計(jì)用 api調(diào)用服務(wù)的測(cè)試腳本所覆蓋率,但大部分的項(xiàng)目基本也是使用api調(diào)用。所以我們額外需要使用coverage.py api 來統(tǒng)計(jì)。
當(dāng)你安裝pytest-cov時(shí),已經(jīng)默認(rèn)安裝了coverage 這個(gè)庫。

服務(wù)啟動(dòng)

要想掃描到代碼,必須在服務(wù)啟動(dòng)的時(shí)候要插入coverage相關(guān)配置。
我這邊是flask 啟動(dòng)的,所以在flask啟動(dòng)的代碼上添加,如下:

            
              
                if
              
               __name__ 
              
                ==
              
              
                '__main__'
              
              
                :
              
              
    cov 
              
                =
              
               Coverage
              
                (
              
              
                )
              
              
    cov
              
                .
              
              start
              
                (
              
              
                )
              
              
                # 開始檢測(cè)代碼
              
              
                print
              
              
                (
              
              
                "qidong"
              
              
                )
              
              
    app
              
                .
              
              run
              
                (
              
              debug
              
                =
              
              
                True
              
              
                ,
              
               host
              
                =
              
              
                '0.0.0.0'
              
              
                ,
              
              port
              
                =
              
              
                9098
              
              
                )
              
              
                #原本只有這一行
              
              
    cov
              
                .
              
              stop
              
                (
              
              
                )
              
              
                # 停止紀(jì)錄
              
              
                print
              
              
                (
              
              
                "guanbi"
              
              
                )
              
              
    cov
              
                .
              
              save
              
                (
              
              
                )
              
              
                # 保存在 .coverage 中
              
              
                print
              
              
                (
              
              
                "save"
              
              
                )
              
              
    cov
              
                .
              
              html_report
              
                (
              
              
                )
              
              
                # 生成 HTML 報(bào)告
              
            
          

原本我們是python xx.py 這樣啟動(dòng),但現(xiàn)在不可以。
需要改成這樣,source 表示目錄,xx表示執(zhí)行文件。

            
              	coverage run --source='/xxx/' xx.py    

            
          

啟動(dòng)運(yùn)行圖如下: python代碼覆蓋率(下)--- coverage.py api_第1張圖片 然后調(diào)用你的自動(dòng)化腳本(自動(dòng)化腳本是直接調(diào)的該服務(wù)提供的api 。)
python代碼覆蓋率(下)--- coverage.py api_第2張圖片
自動(dòng)化如果正常運(yùn)行,能看到運(yùn)行的請(qǐng)求

以上說明你的腳本跟服務(wù)是沒問題的

ctr-c停掉該腳本后,最后顯示save,如果顯示”Coverage.py warning: No data was collected. (no-data-collected)“ 說明的服務(wù)運(yùn)行方式有問題,coverage 服務(wù)沒有運(yùn)行到你代碼

報(bào)告生成

輸入以下命令

            
              coverage report

            
          

python代碼覆蓋率(下)--- coverage.py api_第3張圖片

最后一步最后輸入

            
              coverage html

            
          

這樣就可以省 html 文件了。

導(dǎo)出在window上看,具體點(diǎn)擊某個(gè)文件,點(diǎn)擊run,你可以看到綠色的就是運(yùn)行的。但有問題是,你會(huì)發(fā)現(xiàn)有些代碼應(yīng)該是要被執(zhí)行,但卻沒有被執(zhí)行。所以coverage的數(shù)據(jù)準(zhǔn)不準(zhǔn)很難說。


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 宜兰市| 闻喜县| 庆阳市| 六盘水市| 泾川县| 宁晋县| 通海县| 新安县| 宜都市| 尉犁县| 达拉特旗| 安康市| 定州市| 开平市| 湘潭县| 梁山县| 滦平县| 凤凰县| 土默特右旗| 莱州市| 邢台县| 通河县| 侯马市| 左贡县| 咸丰县| 龙南县| 潢川县| 翼城县| 波密县| 密山市| 资源县| 隆安县| 富川| 融水| 辽源市| 襄城县| 定安县| 云浮市| 宝清县| 衡水市| 雷波县|