Disabling nose coverage report to STDOUT when HTML

2020-07-05 07:12发布

I'm using nose (via django-nose) with the coverage plugin to check test coverage of my Django project.

I've configured nose to generate an HTML coverage report on every test run:

NOSE_ARGS = [                                                                   
    '--with-coverage',                                                            
    '--cover-package=foot',                                                       
    '--cover-html',                                                               
    '--cover-html-dir=cover',
]

Now, I want to disable the plain-text coverage report that gets shown after every test run; the HTML is much more functional, and the long badly-formatted table makes it hard to see actual test output. Neither nosetests nor coverage seems to have such an option, or perhaps I just can't find one?

2条回答
孤傲高冷的网名
2楼-- · 2020-07-05 07:44

A quick-and-dirty fix is to comment out the line that generates the unformatted coverage report in nose/plugins/cover.py:

def report(self, stream):
    ....
    log.debug("Coverage report will cover modules: %s", modules)
    #self.coverInstance.report(modules, file=stream)
查看更多
做自己的国王
3楼-- · 2020-07-05 07:58

(Taken from this related question)

You can install nose-cov:

pip install nose-cov

which has more control over reporting options. Then, change --with-coverage to --with-cover, e.g.

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

which will export to HTML but suppress console output.

查看更多
登录 后发表回答