Использование флага пропуска в Python extension.py API

Я использую python extension.py для создания очень простого набора тестов с покрытием. На данный момент все отлично работает. Однако в мой отчет о покрытии включены все /usr/local/lib библиотеки, которые вызываются, и все __init__.py файлы.

Вот как сейчас выглядит мой звонок с отчетом о перерыве:

self.cov.html_report(directory='coverage', omit='*Test*, */usr/local/lib*,*__init__*')

Цель состоит в том, чтобы использовать флаг пропуска для удаления всех классов со словом «Test», «/ usr / local / lib» или «__init__» в них. Поскольку я не могу найти слишком много в Интернете об этом в API (в командной строке есть много информации о том, как это сделать), знает ли кто-нибудь, какой будет правильный синтаксис для этой работы?


person jsookiki    schedule 05.12.2011    source источник


Ответы (3)


Попробуйте исключить нежелательные файлы в вызове функции покрытия ():

self.cov = coverage.coverage(omit=['*Test*', '*/usr/local/lib*','*__init__*'])

Я бы рекомендовал использовать файл конфигурации покрытия (по умолчанию .coveragerc):

# .coveragerc to control coverage.py

[run]
omit =
        *__init__*
        */usr/local/lib*
        *Test*

[html]
omit =
        *__init__*
        */usr/local/lib*
        *Test*

Вызов покрытия по умолчанию учитывает файл .coveragerc, но если вы хотите убедиться, используйте:

self.cov = coverage.coverage(config_file=True)

В качестве альтернативы вы можете изменить имя файла конфигурации и передать его в качестве аргумента:

self.cov = coverage.coverage(config_file='/your/path/.coverage_config_file')

Надеюсь это поможет.

person Tgilgul    schedule 11.03.2015
comment
По-видимому, теперь блок html допускает только параметры, специально предназначенные для вывода отчета HTML. Чтобы исключить определенные файлы в отчете, в блоке [report] должна быть определена опция omit. См. extension.readthedocs.io/en/coverage-4.0.3/config. .html - person martinarroyo; 24.10.2016
comment
Также очевидно, что пробелы важны, у вас не может быть разных пропусков, начиная с первой строки - person Hakaishin; 11.09.2018

создать этот .coveragerc файл

# .coveragerc to control coverage.py
[run]
branch = True
omit =
        *Test*
        */usr/local/lib*
        */__init__.py


[report]
omit =
        *Test*
        */usr/local/lib*
        */__init__.py

# Regexes for lines to exclude from consideration
exclude_lines =
    # Have to re-enable the standard pragma
    pragma: no cover

    # Don't complain about missing debug-only code:
    def __repr__
    if self\.debug

    # Don't complain if tests don't hit defensive assertion code:
    raise AssertionError
    raise NotImplementedError

    # Don't complain if non-runnable code isn't run:
    if 0:
    if __name__ == .__main__.:

ignore_errors = True

[html]


directory = coverage_html_report
person Marcelo Fonseca    schedule 29.03.2019
comment
спасибо за современный пример - person Jason Harrison; 10.12.2020

Из документов по адресу http://nedbatchelder.com/code/coverage/api.html#api

include и omit - это списки шаблонов имен файлов. Файлы, которые соответствуют включению, будут измеряться, а файлы, соответствующие исключению, не будут. Каждый также примет единственный строковый аргумент.

Так что попробуйте ...

self.cov.html_report(directory='coverage', omit=['*Test*', '/usr/local/lib*', '__init__*'])
person Trey Stout    schedule 06.12.2011