как сказать носу и покрытию не включать файлы в мой virtualenv?

Пытаюсь поспорить нос + покрытие. Если у меня есть этот код:

class Foobar(object):
    def add(self, a, b):
        return a + b

И этот тест:

from unittest import TestCase
from foobar import Foobar

class FoobarTest(TestCase):
    def test_good(self):
        f = Foobar()
        self.assertEquals(f.add(1,2), 3)

Тогда все выглядит хорошо!

$ nosetests
.
Name        Stmts   Miss  Cover   Missing
-----------------------------------------
foobar.py       3      0   100%
----------------------------------------------------------------------
Ran 1 test in 0.018s

OK

Но если я добавлю одну строку в свой исходный код

import requests

class Foobar(object):
    def add(self, a, b):
        return a + b

тогда я получаю много лишнего в своем отчете

$ nosetests
.
Name                                                                           Stmts   Miss  Cover   Missing
--------------------------------------------------------------------------------------------------------
foobar.py                                                                      4      0   100%
requests.py                                                                   26      5    81%   54, 72-75
requests/adapters.py                                                         180    134    26%   48, 51, 54, 89-102, 105, 111-117, 1

[snip]

Итак, как мне настроить покрытие, чтобы сказать: «Не беспокойтесь об измерении или сообщении чего-либо, что является частью моего virtualenv — просто делайте это в моем рабочем каталоге». Я уверен, что это как-то связано с .coveragerc, но у меня возникли проблемы с правильным вызовом.


person Chris Curvey    schedule 15.10.2015    source источник


Ответы (1)


Догадаться.

1) Избавьтесь от любых ini-файлов, связанных с покрытием.

2) добавьте это в "nose.cfg" в вашем домашнем каталоге для носа

[nosetests]
with-coverage=1   ; generate a coverage report (in the "cover" directory)
cover-package=.   ; only report on coverage files in the current directory
cover-html=1      ; generate a pretty html report
cover-erase=1     ; re-generate coverage statistics on each run

и, конечно же, вы должны быть уверены, что ваши тестовые файлы соответствуют шаблону testMatch, который ищет Nose.

person Chris Curvey    schedule 16.10.2015