Покрытие кода для проекта Django

Я установилcoverage.py, чтобы измерить покрытие кода для моего проекта Django. (Как упоминалось здесь: https://docs.djangoproject.com/en/1.6/topics/testing/advanced/#integration-with-coverage-py)

Но в настоящее время у меня нет тестовых случаев в моем проекте. Итак, когда я запускаю охват, он говорит:

coverage run --source='.' manage.py test myapp
Creating test database for alias 'default'...

----------------------------------------------------------------------
Ran 0 tests in 0.000s

OK
Destroying test database for alias 'default'...

Он ясно говорит, что он провел 0 тестов, но когда я говорю

coverage report -m

Это дает мне отчет с покрытием кода 91%. Также он рассматривает только тот пакет моделей, который у меня есть. Он не смотрит на другие пакеты, которые есть как часть моего приложения.

Поэтому, когда я даю

coverage run --source='.' manage.py test myapp/mypackage

Он еще раз сообщает о покрытии только для пакета моделей.

Как измерить покрытие кода для всех пакетов приложения? Пожалуйста, помогите. Заранее спасибо.

myproject/
├── myapp
│   ├── models
│   ├── services
│   ├── statis
│   ├── templates
│   ├── utils
│   └── views
└── myproject

Отчет:

Name                           Stmts   Miss  Cover   Missing
------------------------------------------------------------
manage                            11      2    82%   8-9
myapp/__init__                   0      0   100%   
myapp/admin                      1      1     0%   1
myapp/models/__init__            3      0   100%   
myapp/models/form/__init__      10      0   100%   
myapp/models/form/items         57      0   100%   
myapp/models/form/profile       14      0   100%   
myapp/models/form/sections      10      0   100%   
myapp/models/user/__init__      21      0   100%   
myapp/models/user/items         67      0   100%   
myapp/models/user/profile       13      1    92%   9
myapp/models/user/sections      60      0   100%   
myapp/tests                      1      0   100%   
myapp/urls                       7      7     0%   1-9
myproject/__init__                      0      0   100%   
myproject/manage                       11     11     0%   2-16
myproject/settings                     33      0   100%   
myproject/urls                          4      4     0%   1-6
myproject/wsgi                          4      4     0%   10-14
------------------------------------------------------------
TOTAL                            327     30    91%   

person Srikrishnan Suresh    schedule 04.02.2015    source источник
comment
Не могли бы вы обновить вопрос с вашей структурой каталогов?   -  person Jessamyn Smith    schedule 04.02.2015
comment
Вывод команды отчета о покрытии также будет полезен.   -  person Jessamyn Smith    schedule 04.02.2015
comment
звучит так, как будто он работает и показывает тестовые примеры пакетов, которые вы используете   -  person Arpit Srivastava    schedule 04.02.2015
comment
Возможно ли, что в некоторых модулях отсутствуют файлы __init__.py?   -  person Jessamyn Smith    schedule 04.02.2015
comment
О да!! Спасибо @JessamynSmith :) Это работает!! Плохо, что пропустил..   -  person Srikrishnan Suresh    schedule 04.02.2015


Ответы (1)


Когда модули отсутствуют в покрытии кода, хорошим первым шагом будет проверка любых отсутствующих __init__.py файлов.

person Jessamyn Smith    schedule 04.02.2015