有没有办法过滤鼻子中的覆盖率报告?

时间:2012-11-21 18:11:17

标签: python django code-coverage nose

我使用的是django-nose,它确实会产生巨大的覆盖率报告。如果可能的话,我想过滤它的输出。

以下是输出示例:

    (venv) C:\Users\fsantos\Desktop\biskates.com\biskates\biskates_project>python manage.py test biskates --with-coverage
    nosetests --verbosity 1 biskates --with-coverage
    Creating test database for alias 'default'...
    .C:\Users\fsantos\Desktop\biskates.com\venv\lib\site-packages\django\db\models\fields\__init__.py:808: RuntimeWarning: DateTimeField received a naive datetime (2012-11-21 18:04:49.075000) while time zone support is active.
      RuntimeWarning)
    ....C:\Users\fsantos\Desktop\biskates.com\venv\lib\site-packages\django\db\models\fields\__init__.py:808: RuntimeWarning: DateTimeField received a naive datetime
    (2012-11-21 18:04:51.494000) while time zone support is active.
      RuntimeWarning)
    ...............
    Name
          Stmts   Miss  Cover   Missing
    --------------------------------------------------------------------------------------------------------------------
    biskates.managers
             26      0   100%
    biskates.models
             67      0   100%
    biskates.templatetags
              0      0   100%
    biskates.templatetags.biskates
              1      0   100%
    biskates.views
             90      0   100%
    biskates_project.urls
             19      0   100%
    communication.forms
              9      0   100%
    communication.managers
              9      0   100%
    communication.models
             44      0   100%
    communication.views
             59      0   100%
    debug_toolbar.management
              0      0   100%
    debug_toolbar.middleware
             87     87     0%   4-137
    debug_toolbar.models
              0      0   100%
    debug_toolbar.templatetags
              0      0   100%
    debug_toolbar.toolbar
              0      0   100%
    debug_toolbar.toolbar.loader
             51     51     0%   4-98
    debug_toolbar.urls
              3      3     0%   7-11
    django.conf.locale
              1      1     0%   1
    django.conf.locale.en
              0      0   100%
    django.conf.locale.en.formats
             14     14     0%   7-42
    django.contrib.admin
             19     19     0%   3-41
    django.contrib.admin.actions
             34     34     0%   5-83
    django.contrib.admin.filters
            181    181     0%   8-402
    django.contrib.admin.forms
             27     27     0%   1-43
    django.contrib.admin.helpers
            245    245     0%   1-352
    django.contrib.admin.options
            735    735     0%   1-1464
    django.contrib.admin.sites
            203    203     0%   1-444
    django.contrib.admin.templatetags
              0      0   100%
    django.contrib.admin.templatetags.admin_static
              7      7     0%   1-11
    django.contrib.admin.util
            256    256     0%   1-425
    django.contrib.admin.widgets
            211    211     0%   5-317
    django.contrib.auth.backends
             63     63     0%   1-125
    django.contrib.auth.context_processors
             22     22     0%   4-43
    django.contrib.auth.forms
            175    175     0%   1-335
    django.contrib.auth.hashers
            200    200     0%   1-388
    django.contrib.auth.management
             64     64     0%   4-126
    django.contrib.auth.middleware
             35     35     0%   1-80
    django.contrib.auth.models
            244    244     0%   1-476
    django.contrib.auth.tokens
             33     33     0%   1-71
    django.contrib.contenttypes.generic
            274    274     0%   5-498
    django.contrib.contenttypes.management
             34     34     0%   1-79
    django.contrib.contenttypes.models
             91     91     0%   1-169
    django.contrib.contenttypes.views
             49     49     0%   1-80
    django.contrib.messages.context_processors
              3      3     0%   1-8
    django.contrib.messages.middleware
             11     11     0%   1-26
    django.contrib.messages.models
              0      0   100%
    django.contrib.messages.storage.base
             81     81     0%   1-181
    django.contrib.messages.storage.cookie
             76     76     0%   1-151
    django.contrib.messages.storage.fallback
             29     29     0%   1-54

(...)

            123    123     0%   5-260
    south.v2
              8      8     0%   6-19
    urls
              0      0   100%
    urls.models
             23      2    91%   22, 31
    userprofiles.managers
              4      0   100%
    userprofiles.models
             18      1    94%   14
    userprofiles.views
              4      0   100%
    xml.dom.pulldom
            270    270     0%   1-351
    --------------------------------------------------------------------------------------------------------------------
    TOTAL
           7625   6826    10%
    ----------------------------------------------------------------------
    Ran 20 tests in 10.996s

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

    (venv) C:\Users\fsantos\Desktop\biskates.com\biskates\biskates_project>

为了不损坏您的滚动条,我删除了一半的输出。

正如您所看到的,它非常彻底,并且获得了大量我不关心的信息。

之前我曾经使用过django-test-cover,但是现在我想首先进入django-nose善良并且不想编写测试子类化普通旧django TestCase类。

如何过滤这个巨大的输出?

提前致谢。

1 个答案:

答案 0 :(得分:3)

您可以使用--cover-package指定要使用nosetest覆盖的包,例如:

nosetests --with-coverage --cover-package=herokuapp

仅报告我在herokuapp目录中编写的模块。