Игнорирование модулей, отличных от собственных, в отчетах о покрытии testoob - PullRequest
1 голос
/ 26 января 2010

Я использую testoob следующим образом:

def suite():
    import unittest
    return unittest.TestLoader().loadTestsFromNames([
         'my_module.my_unittest_class',
         'my_module.my_other_unittest_class',
    ])

if __name__ == '__main__':
    import testoob
    testoob.main(defaultTest="suite")

А затем запустите пакет unittest со следующим:

python my_unittest.py --coverage=normal

Это, однако, также напечатает цифры покрытия кода для всех модулей, от которых зависит мой модуль и unittest, в которых я не заинтересован вообще. Как я могу настроить testoob только для того, чтобы сообщать о покрытии для моего собственного модуля?

1 Ответ

0 голосов
/ 09 октября 2012

Я переопределил приватную функцию _should_cover_frame в классе testoob Coverage и сравнил путь к файлу фрейма с моим модулем. Не самое лучшее решение, но оно, по крайней мере, работает.

from testoob.coverage import Coverage
orig_should_cover = Coverage._should_cover_frame
def my_should_cover_frame(self, frame):
    from os.path import abspath
    filename = abspath(frame.f_code.co_filename)
    if filename.find('my_module') == -1:
        return False
    else:
        return orig_should_cover(self, frame)
Coverage._should_cover_frame = my_should_cover_frame
...