美文网首页AutoTest-AutoAI
测试用例覆盖率coverage工具使用

测试用例覆盖率coverage工具使用

作者: Jogging | 来源:发表于2017-03-28 18:42 被阅读1080次
    • 安装coverage工具
    easy_install coverage
    or
    pip install coverage
    
    • 下面举例说明如何使用coverage工具
    项目目录
    • 生成指定测试用例模块的覆盖率报告
    cd tests
    coverage run test_ascheduler.py
    
    Paste_Image.png

    新增加一个.coverage文件,这个文件里面记录了test_ascheduler.py单元测试脚本对应模块的覆盖率数据。

    默认覆盖率数据记录在.coverage文件中,也可以在运行前指定保存文件的名称,通过设定环境变量 COVERAGE_FILE 来更改存储覆盖率报告的文件名称。

    • 可以使用下面的命令来查看测试用例覆盖率情况:
    coverage report
    
    • 生成多个测试用例模块报告

    在tests目录下面存在多个test_开头的测试用例模块,如果我们分别执行coverage run 命令,.coverage会被后面执行的结果覆盖,可以执行下面的命令保存多个测试用例覆盖率报告:

    coverage run -p test_ascheduler.py
    coverage run -p test_calendar.py
    coverage run -p test_cmd.py
    coverage run -p test_cmd2.py
    coverage run -p test_rsync.py
    
    • 合并多个测试用例覆盖率报告
    coverage combine
    

    合并成一个.coverage文件:

    Paste_Image.png
    • 查看测试用例未覆盖的代码行
    coverage report -m
    

    Missing列表示测试用例未覆盖的代码行号

    • 测试覆盖率报告中不显示测试用例模块

    我们看到上面的测试用例报告中,有很多测试用例模块自身的覆盖率,其实我们只想看功能模块的测试覆盖率情况,可以执行下面的命令:

    coverage report --omit="test_*.py"
    

    或者在执行的时候指定过滤,忽略所有符合test_*.py模式的python文件

    coverage run --omit="test_*.py"  test_ascheduler.py
    coverage report
    

    或者通过配置文件.coveragerc来设定过滤规则:

    touch .coveragerc
    

    vim .coveragerc

    [run]
    omit =
        test_*.py
        */utils/__init__.py
        */utils/errors.py
    

    一般测试用例覆盖率不需要对测试用例模块本身做出统计,过滤掉test_*.py的模块,另外__init__.py和errors.py文件一般也不需要测试用例覆盖率。

    coverage run test_ascheduler.py
    coverage report
    
    Paste_Image.png

    相关文章

      网友评论

        本文标题:测试用例覆盖率coverage工具使用

        本文链接:https://www.haomeiwen.com/subject/xksjottx.html