Question

I am writing python tests with unittest and running the tests from the command line with

 nosetests --with-coverage -x

When I include numpy in one of my tests it tries to test the numpy packages as well. Example output:

...
Name                            Stmts   Miss  Cover   Missing
-------------------------------------------------------------
CLOCK                              39     33    15%   3, 7-13, 17, 20-25, 28-47
LFU                                42      1    98%   52
LRU                                95      9    91%   12, 64, 68, 101, 115-118, 131
LRU10                              54      1    98%   68
LRU3                               54      1    98%   68
argparse                         1177   1177     0%   3-2361
cache                              86     33    62%   36-47, 86-89, 95-116
common                             87     54    38%   17, 20, 23, 28, 31-32, 35-36, 39, 42, 46, 48, 50, 52, 54, 57-64, 67-68, 72-89, 95-96, 102-107, 112-118, 123
ctypes                            341    341     0%   4-555
ctypes._endian                     35     35     0%   4-64
numpy                              56     56     0%   107-197
numpy.__config__                   27     27     0%   3-32
numpy._import_tools               224    224     0%   1-348
numpy.add_newdocs                 275    275     0%   11-7459
numpy.compat                        8      8     0%   11-20
numpy.compat._inspect             106    106     0%   8-221
numpy.compat.py3k                  57     57     0%   5-89
numpy.core                         56     56     0%   1-74
numpy.core._internal              350    350     0%   7-570
numpy.core._methods                72     72     0%   6-130
numpy.core.arrayprint             354    354     0%   6-752
numpy.core.defchararray           364    364     0%   18-2686
numpy.core.fromnumeric            310    310     0%   4-2918
numpy.core.function_base           24     24     0%   1-173
numpy.core.getlimits              132    132     0%   4-306
numpy.core.info                     3      3     0%   84-87
numpy.core.machar                 186    186     0%   8-338
numpy.core.memmap                  83     83     0%   1-305
numpy.core.numeric                523    523     0%   1-2730
numpy.core.numerictypes           381    381     0%   83-1035
numpy.core.records                356    356     0%   37-808
numpy.core.shape_base              50     50     0%   1-277
numpy.ctypeslib                   187    187     0%   52-426
numpy.fft                           7      7     0%   1-11
numpy.fft.fftpack                 109    109     0%   33-1119
numpy.fft.helper                   51     51     0%   5-223
numpy.fft.info                      2      2     0%   177-179
numpy.lib                          38     38     0%   1-45
numpy.lib._datasource             178    178     0%   34-656
numpy.lib._iotools                372    372     0%   4-874
numpy.lib.arraypad                383    383     0%   6-1469
numpy.lib.arraysetops              98     98     0%   27-450
numpy.lib.arrayterator             72     72     0%   10-224
numpy.lib.financial               112    112     0%   11-735
numpy.lib.format                  178    178     0%   137-614
numpy.lib.function_base           889    889     0%   1-3555
numpy.lib.index_tricks            250    250     0%   1-849
numpy.lib.info                      3      3     0%   148-151
numpy.lib.nanfunctions            138    138     0%   17-838
numpy.lib.npyio                   729    729     0%   1-1899
numpy.lib.polynomial              386    386     0%   5-1266
numpy.lib.scimath                  55     55     0%   18-560
numpy.lib.shape_base              200    200     0%   1-834
numpy.lib.stride_tricks            48     48     0%   8-121
numpy.lib.twodim_base             116    116     0%   4-929
numpy.lib.type_check              104    104     0%   4-605
numpy.lib.ufunclike                23     23     0%   6-177
numpy.lib.utils                   517    517     0%   1-1134
numpy.linalg                        6      6     0%   45-54
numpy.linalg.info                   2      2     0%   35-37
numpy.linalg.linalg               530    530     0%   11-2131
numpy.ma                           15     15     0%   39-58
numpy.ma.core                    2324   2324     0%   23-7243
numpy.ma.extras                   610    610     0%   11-1885
numpy.matrixlib                     6      6     0%   4-12
numpy.matrixlib.defmatrix         286    286     0%   1-1094
numpy.polynomial                   11     11     0%   16-29
numpy.polynomial.chebyshev        432    432     0%   88-2015
numpy.polynomial.hermite          382    382     0%   60-1750
numpy.polynomial.hermite_e        379    379     0%   60-1746
numpy.polynomial.laguerre         379    379     0%   60-1742
numpy.polynomial.legendre         386    386     0%   84-1768
numpy.polynomial.polynomial       302    302     0%   56-1493
numpy.polynomial.polytemplate       4      4     0%   12-17
numpy.polynomial.polyutils         67     67     0%   34-384
numpy.random                       13     13     0%   89-114
numpy.random.info                   3      3     0%   85-89
numpy.version                       7      7     0%   3-10
statistics                         19      2    89%   24-25
statistics.countingghost           84     44    48%   43-60, 66-69, 75-80, 83-89, 93-104, 107, 110-113
statistics.rounder                 89     17    81%   29, 40, 70-83, 112-113
-------------------------------------------------------------
TOTAL                           17686  17145     3%   
----------------------------------------------------------------------
Ran 3 tests in 3.279s

OK

How can I correctly ignore the numpy tests with the -I -m or -e parameters? I could pipe this to grep -v numpy but that is not cool.

Was it helpful?

Solution

There is a nose plugin specifically for the task - nose-exclude:

nose-exclude is a Nose plugin that allows you to easily specify directories to be excluded from testing.

Another option is to specify omit configuration parameter in .coveragerc file:

omit (multi-string): a list of filename patterns, the files to leave out of measurement or reporting.

See also: How to exclude mock package from python coverage report using nosetests

OTHER TIPS

You can also specify which package you'd like to run tests for when you call nose with the --cover-package flag.

E.g.

nosetests --with-coverage --cover-package=the-name-of-your-package -x
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top