Python coverage.py:排除函数定义,不排除函数体

Python coverage.py:排除函数定义,不排除函数体,python,code-coverage,coverage.py,Python,Code Coverage,Coverage.py,我一直试图将coverage.py设置为排除所有不在函数体中的行。具体地说,我只感兴趣的是已经执行了哪些函数,以及已经执行的函数体的哪些部分。我已经尝试通过将正则表达式添加到排除列表中来解决这个问题,排除列表中包含我不关心的所有内容(导入、docstring),但只要添加: cov.exclude('^def ') 不仅排除了函数定义行,还排除了函数体。可以得到我想要的吗?为什么要排除函数定义?它们已经被执行了,对吧,那么为什么不对它们进行度量呢?我想这可能是无意中使用的,但我正试图使用cov

我一直试图将coverage.py设置为排除所有不在函数体中的行。具体地说,我只感兴趣的是已经执行了哪些函数,以及已经执行的函数体的哪些部分。我已经尝试通过将正则表达式添加到排除列表中来解决这个问题,排除列表中包含我不关心的所有内容(导入、docstring),但只要添加:

cov.exclude('^def ')

不仅排除了函数定义行,还排除了函数体。可以得到我想要的吗?

为什么要排除函数定义?它们已经被执行了,对吧,那么为什么不对它们进行度量呢?我想这可能是无意中使用的,但我正试图使用coverage.py专门度量web API的调用量(其中每个Python函数包装一个API调用)。基本上,我只对调用方执行了哪些函数感兴趣。我不会尝试对结果进行太精细的切片:如果测量整个Python文件,它会告诉您何时缺少特定的函数调用。实际的百分比并不重要。如果您想要一个“API百分比”而不是“Python百分比”,那么只需导入模块就可以估计Python的执行百分比,并从覆盖率总数中减去这个百分比。在这里,我解释说我无法控制模块加载的时间,所以我只需要计算实体,而不需要计算定义。有人想出了这样做的方法吗?