[TIP] Getting Weird Coverage Reports

Michael Foord michael at voidspace.org.uk
Fri Nov 25 04:00:18 PST 2011

On 25/11/2011 11:55, John Anderson wrote:
> I have a base class that all my models inherit from:
> http://paste2.org/p/1796621
> and majority of my tests are touching models and I even have tests 
> against this specific class:
> http://paste2.org/p/1796622
> Yet, when I run a coverage test in py.test:
> py.test --cov-report=term-missing --cov app/models.py
> app/models      46     23    50%   1-27, 37-40, 59, 65, 76, 82-84
> How are lines 1-27 not covered?

All of those lines (imports, class definition, decorator application) 
are executed at *import time* (i.e. when the module is first created). 
The fact that those lines are reported as not covered implies to me that 
you are starting the test run (and therefore importing your models) 
before coverage is started.

You need to run your tests under the coverage tool, or ensure that 
coverage tracing is started before any imports execute.

All the best,

Michael Foord

> _______________________________________________
> testing-in-python mailing list
> testing-in-python at lists.idyll.org
> http://lists.idyll.org/listinfo/testing-in-python


May you do good and not evil
May you find forgiveness for yourself and forgive others
May you share freely, never taking more than you give.
-- the sqlite blessing http://www.sqlite.org/different.html

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.idyll.org/pipermail/testing-in-python/attachments/20111125/1ed93d6c/attachment.htm>

More information about the testing-in-python mailing list