Django项目的代码覆盖率

7
我安装了coverage.py来测量我的Django项目的代码覆盖率。(如此处所述:https://docs.djangoproject.com/en/1.6/topics/testing/advanced/#integration-with-coverage-py)但是我目前在我的项目中没有测试用例。因此,当我运行coverage时,它会显示:
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'...

明确地告诉我们没有运行任何测试,但是当我输入

coverage report -m

它给我一个代码覆盖率为91%的报告。同时,它只查看我拥有的models包。它不会查看作为我的应用程序一部分存在的其他包。

因此,当我执行

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%   

请问您能否更新一下问题,包括您的目录结构? - Jessamyn Smith
覆盖率报告命令的输出也会非常有帮助。 - Jessamyn Smith
听起来好像它能运行并显示您正在使用的软件包测试用例。 - Arpit Srivastava
2
你是否在一些模块中缺少了 __init__.py 文件? - Jessamyn Smith
哦,太好了!谢谢@JessamynSmith :) 它起作用了!糟糕的是我错过了它.. - Srikrishnan Suresh
1个回答

9

当代码覆盖率中缺少模块时,一个好的第一步是检查是否有任何缺失的__init__.py文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接