Django对URL的覆盖率测试为0%,为什么?

时间:2014-09-17 20:06:48

标签: python django django-testing coverage.py python-coverage

使用Django Nose。我对我的网址进行了测试,但网址的覆盖率仍为0%,为什么?

  

python manage.py测试档案

这是我的报道:

Name                               Stmts   Miss  Cover   Missing
----------------------------------------------------------------
profiles                               0      0   100%
profiles.migrations                    0      0   100%
profiles.migrations.0001_initial       6      0   100%
profiles.models                        0      0   100%
profiles.urls                          4      4     0%   1-9
----------------------------------------------------------------
TOTAL                                 10      4    60%
----------------------------------------------------------------

这是我的网址测试...

url_tests.py

import nose.tools as noz
from django.test import TestCase
from django.core.urlresolvers import resolve, reverse

class URLsTest(TestCase):

    def test_user_list(self):
        url = reverse('api_user_list', args=[])
        noz.assert_equal(url, '/api/user/')

1 个答案:

答案 0 :(得分:2)

通常这与在此过程中启动得太晚的coverage.py有关。确保它足够早启动的最简单方法是在覆盖范围内运行测试运行器:

$ coverage run nosetests.py ....

urls.py的一个相关细节:它仅包含导入时执行的代码。因此,当Django启动并导入urls.py时,将执行整个文件。这与大多数文件不同,后者定义了稍后执行其主体的类或函数。