如何排除程序启动代码 (__name__ == "__main__") 不包含在 pytest 覆盖率报告中?

How to exclude the program startup code (__name__ == "__main__") from being included in pytest coverage reports?

我们的项目中有几个带有一些命令行参数的小脚本。例如:

if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("--branch")
    command_line_args = parser.parse_args()
    if not command_line_args.branch:
        raise Exception
    main(command_line_args.branch)

我们对单元测试并不感兴趣。但是,这会影响我们的覆盖率报告,有没有办法使用 pytest 从单元测试中排除 if __name__ == "__main__"

您可以添加评论,如下所示:

if __name__ == "__main__":  # pragma: no cover
    parser = argparse.ArgumentParser()    
    ...