Question

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?

Was it helpful?

Solution

(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.

OTHER TIPS

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)
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top