2024-10-03 09:19:52 发布
网友
在测试覆盖率期间有没有办法排除私有方法?在
在我的保险柜里我试过:
[report] exclude_lines = __*
但它似乎排除了long_method_name等方法
long_method_name
有没有办法不列出所有的方法?在
编辑
我希望像__add__这样语法与private相似的方法被包括在测试中。在
__add__
您的regex是__*,它匹配一个或多个下划线,因此它将排除其中有下划线的任何行。这不是你想要的。在
__*
这样可以排除以双下划线开头的函数的任何函数定义:
[report] exclude_lines = def __
我觉得这是个坏主意。你需要知道这些功能是否经过适当的测试。它们是从您的公共API调用的:如果您不测量它们调用的函数的覆盖率,您怎么能声称您的公共API函数已经过全面测试?在
要排除私有方法,但不排除特殊方法,可以尝试使用更详细的正则表达式:
但这有点疯狂。。。在
从docs:
class MyObject(object): def __init__(self): blah1() blah2() def __repr__(self): # pragma: no cover return "<MyObject>"
用一个config选项排除所有私有方法在IMO中没有意义-如果查看覆盖率结果,会导致错误的假设。在
您的regex是
__*
,它匹配一个或多个下划线,因此它将排除其中有下划线的任何行。这不是你想要的。在这样可以排除以双下划线开头的函数的任何函数定义:
我觉得这是个坏主意。你需要知道这些功能是否经过适当的测试。它们是从您的公共API调用的:如果您不测量它们调用的函数的覆盖率,您怎么能声称您的公共API函数已经过全面测试?在
要排除私有方法,但不排除特殊方法,可以尝试使用更详细的正则表达式:
^{pr2}$但这有点疯狂。。。在
从docs:
用一个config选项排除所有私有方法在IMO中没有意义-如果查看覆盖率结果,会导致错误的假设。在
相关问题 更多 >
编程相关推荐