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

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

系統(tǒng) 2182 0

前言

使用pytest-cov 無法統(tǒng)計(jì)用 api調(diào)用服務(wù)的測試腳本所覆蓋率,但大部分的項(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
              
                (
              
              
                )
              
              
                # 開始檢測代碼
              
              
                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)行的請求

以上說明你的腳本跟服務(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)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 鸡东县| 定州市| 保靖县| 罗田县| 二连浩特市| 福安市| 万州区| 安陆市| 安塞县| 岳池县| 澄迈县| 自贡市| 宁晋县| 台东县| 武鸣县| 阜平县| 洛宁县| 乐都县| 年辖:市辖区| 濮阳市| 大英县| 泽州县| 禹城市| 斗六市| 两当县| 东城区| 香港| 玉林市| 犍为县| 江永县| 威远县| 万山特区| 临高县| 新乡市| 西丰县| 鸡泽县| 昭觉县| 万荣县| 常宁市| 彭泽县| 赫章县|