覆盖范围“ Pragma:无封面”不适用于子文件夹中的模块

时间:2019-05-08 23:15:57

标签: python coverage.py

我试图将“ 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

两个文件的Cover列中的值应为100%,因为这两个模块仅包含1个类,并且在类定义的同一行中带有“ #pragma:no cover”注释。我已经通过从TeamCityListener.py删除注释进行了测试,并且覆盖率下降到0%,因此我可以确认它适用于根目录中的模块。

.coveragerc:

[report]
exclude_lines =
    pragma: no cover

0 个答案:

没有答案