如何禁用鼻子测试覆盖率报告

时间:2011-02-21 11:36:30

标签: python django testing nose

希望是一个简单的python / django nose测试问题,虽然我在nose的文档中找不到答案。

如何在使用./manage.py test运行测试后停止显示覆盖率报告?

我的覆盖率报告存在一个巨大的问题,迫使我向后滚动几十行来获取我的失败测试的追溯,它确实打断了我的工作流程!我喜欢使用nose,但如果我无法弄清楚如何摆脱这种情况,我将不得不回到vanilla django测试。

提前感谢您的想法!

以下是我必须滚动回来以获取追溯:

./manage.py test
[...]
======================================================================
FAIL: testFreightAveragesContainer ([...].tests.test_average_container.AveragesContainerTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "[...]/tests/test_average_container.py", line 32, in testAveragesContainer
    121
AssertionError: 12 != 121

Name                                                    Stmts   Miss  Cover   Missing
-------------------------------------------------------------------------------------
abc.advertising                                             0      0   100%   
abc.advertising.management                                  0      0   100%   
abc.advertising.models                                     73     73     0%   1-91
abc.client                                                  0      0   100%   
abc.client.admin                                          200    200     0%   1-430
abc.client.forms                                           57     57     0%   1-99
abc.client.management                                       0      0   100%   
abc.client.models                                         434    434     0%   1-1007
abc.client.translations                                    30     30     0%   1-33
abc.client.views                                           18     18     0%   1-24
abc.cms                                                     0      0   100%   
abc.cms.management                                          0      0   100%   
abc.cms.models                                            235    235     0%   1-416
abc.cms.translations                                       18     18     0%   1-21
abc.commodity                                               0      0   100%   
abc.commodity.admin                                        51     51     0%   1-107
abc.commodity.forms                                        12      0   100%   
abc.commodity.models                                      343    343     0%   1-669
abc.commodity.search_indexes                               10      1    90%   13
abc.commodity.tests                                         5      3    40%   3-6
abc.commodity.tests.test_average_container                 14      1    93%   37
abc.commodity.tests.test_lead_time_analyser                70      0   100%   
abc.commodity.tests.test_price_analysers                    6      2    67%   10, 15
abc.commodity.translations                                 38     38     0%   1-40
abc.commodity.urls                                         11      0   100%   
abc.commodity.views                                       452    359    21%   22-25, 29-32, 74, 83-96, 101-142, 151-159, 166-172, 179-192, 198-250, 260-264, 287-288, 300-314, 321-378, 385-433, 441-502, 509-557, 563-567, 574-581, 587-662, 668-672, 679-686, 694-722, 730-754, 761-843, 850-854, 861-871, 878-904, 951-952, 962-978, 990-1010
abc.data_submission                                         0      0   100%   
abc.data_submission.iron_ore_submission_normalisation     187    187     0%   1-481
abc.data_submission.managers                               27     27     0%   1-71
abc.data_submission.models                                635    635     0%   1-1222
abc.invoicing                                               0      0   100%   
abc.invoicing.models                                      261    261     0%   1-440
abc.invoicing.translations                                 25     25     0%   1-26
abc.localisation                                            0      0   100%   
abc.localisation.management                                 0      0   100%   
abc.localisation.models                                   167    167     0%   1-528
abc.localisation.translation                                0      0   100%   
abc.localisation.translation.models                       144    144     0%   1-318
abc.localisation.translations                              22     22     0%   1-24
abc.mailing                                                 0      0   100%   
abc.mailing.admin                                         110    110     0%   1-165
abc.mailing.forms                                          33     33     0%   1-44
abc.mailing.management                                      0      0   100%   
abc.mailing.models                                        337    337     0%   1-706
abc.mailing.translations                                   15     15     0%   1-16
abc.marketing                                               0      0   100%   
abc.marketing.models                                        0      0   100%   
abc.product                                                 0      0   100%   
abc.product.models                                          0      0   100%   
abc.staff                                                   0      0   100%   
abc.staff.models                                           80     80     0%   1-154
.staff.translations                                      4      4     0%   1-5
abc.utils                                                   0      0   100%   
abc.utils.base                                              9      9     0%   1-19
abc.utils.base.models                                     187    187     0%   1-435
abc.utils.custom_ui                                         0      0   100%   
abc.utils.custom_ui.advanced_filter                       175    175     0%   1-241
abc.utils.custom_ui.models                                  3      3     0%   1-5
abc.utils.date                                             41     41     0%   1-73
abc.utils.db                                                0      0   100%   
abc.utils.db.routers                                       21     19    10%   1-7, 10, 13-32
abc.utils.format                                           33     33     0%   1-60
abc.utils.models                                           10     10     0%   1-30
abc.utils.navigation                                       10     10     0%   2-19
abc.utils.views                                            23     23     0%   1-42
-------------------------------------------------------------------------------------
TOTAL                                                    4636   4420     5%   
----------------------------------------------------------------------
Ran 9 tests in 0.059s

FAILED (failures=1)
./manage.py test commodity --failfast  13.59s user 0.17s system 97% cpu 14.099 total

3 个答案:

答案 0 :(得分:4)

你可以:

pip install nose-cov

对报告选项有更多控制权,除非您要求,否则不会向控制台报告。然后将--with-coverage更改为--with-cov

NOSE_ARGS = [
 '--with-cov',
 '--cov-report', 'html',
]

这只会导出为html。

同样的问题:

Disabling nose coverage report to STDOUT when HTML report is enabled?

答案 1 :(得分:3)

您使用的是哪种版本的Django和鼻子?据我所知,这不是Django测试运行的默认行为,它绝对不是默认的鼻子。

使用coverage plugin进行切换使用的相关选项是“--with-coverage”。

我不确定你是不是偶然转过了报道,你应该查看settings.py. 对于像COVERAGE_MODULES和TEST_RUNNER这样的变量,看看它们的设置是什么。

答案 2 :(得分:1)

我不熟悉Django manage.py脚本,但我猜你可以查看" test"任务,看热点叫鼻子。我想你只想运行测试,没有覆盖范围。 鼻子文档在这里http://somethingaboutorange.com/mrl/projects/nose/0.11.3/usage.html