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