首页 > 解决方案 > 覆盖“Pragma:No Cover”不适用于子文件夹中的模块

问题描述

我正在尝试将“Pragma:No Cover”添加到不需要覆盖的模块中。但是coverage.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

标签: pythoncoverage.py

解决方案


推荐阅读