Покрытие "Pragma: No Cover" не работает для модулей в подпапке - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь добавить «Pragma: No Cover» к модулям, которые не требуют покрытия. Но cover.py распознает комментарий только в модулях в корневой папке. Он не работает с модулями, которые находятся внутри подкаталогов.

Я пытался использовать --rcfile и иметь список пропусков в разделе [run], и это решает мою проблему но я хотел бы понять, почему комментарий не будет работать в подкаталогах. [Я не забыл добавить конфигурацию exclude_lines обратно в мой rcfile.]

sb@ubuntu:~/PycharmProjects/TestAutomation$ coverage report TeamCityListener.py 
Name                  Stmts   Miss  Cover
-----------------------------------------
TeamCityListener.py       3      0   100%
sb@ubuntu:~/PycharmProjects/TestAutomation$ coverage report projectapi/lib/py/ProjectApiSessionManager.py
Name                                        Stmts   Miss  Cover
---------------------------------------------------------------
projectapi/lib/py/ProjectApiSessionManager.py       2      2     0%

** Определение класса ProjectApiSessionManager: **

class ProjectApiSessionManager(SessionManager):       # pragma: no cover

    def __init__(self):
        super().__init__(projectapi_config_manager.env_info, auth_enabled=True)

Определение класса TeamCityListener:

class TeamCityListener:     # pragma: no cover
    # bunch of methods

Значение в столбце обложки для обоих файлов должно быть равно 100%, поскольку оба модуля содержат только 1 класс с комментарием «#pragma: no cover» в той же строке, что и определение класса. Я протестировал, удалив комментарий из TeamCityListener.py, и обложка опустилась до 0%, поэтому я могу подтвердить, что он работает для модулей в корневом каталоге.

.coveragerc:

[report]
exclude_lines =
    pragma: no cover
...