Hopefully a simple python/django nose
test question, though I can't find the answer in nose
's documentation.
希望是一个简单的python / django鼻子测试问题,虽然我在鼻子的文档中找不到答案。
How do I stop the coverage report showing up after I run the tests with ./manage.py test
?
在使用./manage.py测试运行测试后,如何停止显示覆盖率报告?
I have a huge problem with the coverage report forcing me to scroll back a few dozen lines to get the traceback of my failing test, it really interrupts my workflow! I like using nose
, but if I can't figure out how to get rid of this I'll have to go back to vanilla django tests.
我的覆盖率报告存在一个巨大的问题,迫使我向后滚动几十行以获得我的失败测试的回溯,它确实打断了我的工作流程!我喜欢用鼻子,但如果我不知道如何摆脱这个,我将不得不回到香草django测试。
Thanks in advance for your thoughts!
提前感谢您的想法!
Here's what I have to scroll back through to get to the traceback:
这是我必须回滚以获得回溯的内容:
./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 个解决方案
#1
3
Which versions of Django and nose are you using? As far as I'm aware, this is not the default behaviour of Django's test running and it's definitely not default for nose.
您使用的是哪种版本的Django和鼻子?据我所知,这不是Django测试运行的默认行为,它绝对不是默认的鼻子。
The relevant option to give to nose to toggle use of the coverage plugin is "--with-coverage".
使用覆盖插件的鼻子切换使用的相关选项是“--with-coverage”。
I'm not sure you managed to turn coverage on by accident, you should look in settings.py for variables like COVERAGE_MODULES and TEST_RUNNER and see what they're set to.
我不确定你是不是偶然设置了覆盖范围,你应该在settings.py中查找COVERAGE_MODULES和TEST_RUNNER之类的变量,看看它们的设置是什么。
#2
4
You can:
您可以:
pip install nose-cov
Which has more control over reporting options and will not report to console unless you ask it to. Then change --with-coverage
to --with-cov
:
它可以更好地控制报告选项,除非您要求,否则不会向控制台报告。然后将--with-coverage更改为--with-cov:
NOSE_ARGS = [
'--with-cov',
'--cov-report', 'html',
]
This will only export to html.
这只会导出到html。
Same question here:
同样的问题:
Disabling nose coverage report to STDOUT when HTML report is enabled?
启用HTML报告时,禁用鼻子覆盖率报告到STDOUT?
#3
1
I am not familiar with Django manage.py script, but I guess that you can look into the "test" task and see hot it calls nose. I guess that you would like to only run the tests, without the coverage. Nose documentation is here http://somethingaboutorange.com/mrl/projects/nose/0.11.3/usage.html
我不熟悉Django manage.py脚本,但我想你可以查看“测试”任务并看到它称为鼻子。我想你只想运行测试,没有覆盖范围。鼻子文档在这里http://somethingaboutorange.com/mrl/projects/nose/0.11.3/usage.html
#1
3
Which versions of Django and nose are you using? As far as I'm aware, this is not the default behaviour of Django's test running and it's definitely not default for nose.
您使用的是哪种版本的Django和鼻子?据我所知,这不是Django测试运行的默认行为,它绝对不是默认的鼻子。
The relevant option to give to nose to toggle use of the coverage plugin is "--with-coverage".
使用覆盖插件的鼻子切换使用的相关选项是“--with-coverage”。
I'm not sure you managed to turn coverage on by accident, you should look in settings.py for variables like COVERAGE_MODULES and TEST_RUNNER and see what they're set to.
我不确定你是不是偶然设置了覆盖范围,你应该在settings.py中查找COVERAGE_MODULES和TEST_RUNNER之类的变量,看看它们的设置是什么。
#2
4
You can:
您可以:
pip install nose-cov
Which has more control over reporting options and will not report to console unless you ask it to. Then change --with-coverage
to --with-cov
:
它可以更好地控制报告选项,除非您要求,否则不会向控制台报告。然后将--with-coverage更改为--with-cov:
NOSE_ARGS = [
'--with-cov',
'--cov-report', 'html',
]
This will only export to html.
这只会导出到html。
Same question here:
同样的问题:
Disabling nose coverage report to STDOUT when HTML report is enabled?
启用HTML报告时,禁用鼻子覆盖率报告到STDOUT?
#3
1
I am not familiar with Django manage.py script, but I guess that you can look into the "test" task and see hot it calls nose. I guess that you would like to only run the tests, without the coverage. Nose documentation is here http://somethingaboutorange.com/mrl/projects/nose/0.11.3/usage.html
我不熟悉Django manage.py脚本,但我想你可以查看“测试”任务并看到它称为鼻子。我想你只想运行测试,没有覆盖范围。鼻子文档在这里http://somethingaboutorange.com/mrl/projects/nose/0.11.3/usage.html