Использование флага пропуска в Python cover.py API - PullRequest
5 голосов
/ 06 декабря 2011

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

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

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

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

Ответы [ 3 ]

11 голосов
/ 12 марта 2015

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

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')

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

2 голосов
/ 06 декабря 2011

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

можно включать и опускать списки шаблонов имен файлов.Будут измерены соответствующие файлы, а соответствующие файлы опущены.Каждый из них также примет один строковый аргумент.

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

self.cov.html_report(directory='coverage', omit=['*Test*', '/usr/local/lib*', '__init__*'])
0 голосов
/ 29 марта 2019

создать этот .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
...