django coverage

来源:互联网 发布:陈肇雄 聚合数据 编辑:程序博客网 时间:2024/06/04 00:28

测试环境: ubuntu17, python2.7, django1.10.4, 用coverage做代码测试覆盖率报告, 步骤如下:

(.env) $ pip install coverage(.env) $ vim coverage.sh(.env) $ cat coverage.shcoverage run --include=usermanager/* --omit=.env/*,*/migrations/*,*/__init__.py,*/tests.py,*/models.py,manage.py ./manage.py test $* --settings=digichainOpen.settings(.env) $ chmod +x coverage.sh(.env) $ ./coverage.sh usermanager----------------------------------------------------------------------Ran 6 tests in 0.485sOKDestroying test database for alias 'default'...Destroying test database for alias 'mysql_property'...(.env) $ coverage report -mName                                  Stmts   Miss  Cover   Missing-------------------------------------------------------------------usermanager/adapter.py                   59      4    93%   29, 38, 80, 91usermanager/allauth_app_settings.py       4      0   100%usermanager/app_settings.py             130     54    58%   30-31, 52-53, 62, 71-72, 81, 88, 99, 101, 129, 136-137, 144-152, 159, 173, 187, 203, 207, 214, 222, 226, 230, 234, 242, 249-250, 259, 266, 270, 279, 288, 292, 296, 300, 304-320usermanager/exceptions.py                 3      1    67%   7usermanager/forms.py                    301    211    30%   36-43, 64-66, 88-118, 125-138, 141-142, 145-150, 153-172, 175-185, 194, 211-236, 251-299, 304-306, 309-313, 316, 319-327, 330-339, 344-351, 354-379, 382-388, 394-395, 409-425, 428, 441-442, 445-448, 451, 460-461, 464, 480-486, 489-521, 530-533, 536, 552-557, 560-570usermanager/managers.py                  41     25    39%   14-21, 24-27, 32, 42, 45-58, 64, 67, 70-72, 75usermanager/serializers.py               38      5    87%   43-47usermanager/signals.py                   12      0   100%usermanager/tests_allauth.py            117     27    77%   28, 35, 42-47, 50, 53, 57, 62, 65-77, 80-82, 124usermanager/urls.py                       5      0   100%usermanager/utils.py                    230    192    17%   29-30, 38-41, 45-55, 65-66, 70-73, 78-82, 89-107, 111-113, 117, 134-171, 176-182, 197-246, 255-283, 298-337, 348-356, 363-375, 385-392, 396-400, 407-416, 420-434usermanager/utils2.py                   196     51    74%   28-29, 62-63, 73, 108-111, 121-122, 127-141, 145-148, 152-156, 219-220, 242-251, 273, 282, 290-293, 297usermanager/views.py                    741    449    39%   80-92, 174, 214-218, 267-294, 324-330, 335-368, 373-394, 399-416, 422-456, 464-478, 481-501, 512-527, 530-546, 554-567, 570-585, 588-619, 624-627, 631-637, 641-646, 649, 652, 659-666, 669-690, 714-727, 730-739, 742-744, 747-751, 754, 795, 800-813, 819-824, 827-830, 833-847, 860, 865-866, 869-877, 889, 895, 898-900, 904-906, 909-917, 920-924, 936, 942, 946-948, 952-954, 957-966, 969-973, 985, 988-989, 992-994, 997-1008, 1011-1029, 1032-1047, 1050-1076, 1079-1118, 1121-1125, 1128-1135-------------------------------------------------------------------TOTAL                                  1877   1019    46%
以上为单个app(usermanager)的测试报告, 获取整个项目测试报告的命令如下:

(.env) $ vim coverage.sh(.env) $ cat coverage.shcoverage run  --omit=.env/*,*/migrations/*,*/__init__.py,*/tests.py,*/models.py,manage.py ./manage.py test $* --settings=digichainOpen.settings(.env) $ ./coverage.sh(.env) $ coverage report -m


其中重点是coverage.sh整个文件, --omit后面跟着的是要在报告中忽略的文件,  $*是获取命令行参数(用于指定要测试的app, 缺省则测试整个项目)

reference: http://coverage.readthedocs.io/en/latest/source.html#source

原创粉丝点击