我使用nosetest
的{{1}}插件。是否有可能从覆盖率报告中排除整个文件或文件夹?我的用例是在我的项目文件夹中有一个外部库,显然我的测试套件没有这个库。
答案 0 :(得分:2)
如果要排除代码块,请使用 # pragma: no cover
注释。
一些例子:
def foo(self, param): # pragma: no cover <--
""" Exclude an entire function """
# None of this will be included in coverage
def bar(self, param):
""" Exclude a branch of code """
if param:
# This part is included in code coverage
do_this()
else: # pragma: no cover <--
# Not included in coverage
other_thing()
docs 中的更多内容。
答案 1 :(得分:1)
是的,他们在the docs中得到了相当广泛的支持。
运行代码时,默认情况下将运行coverage run命令 测量所有代码,除非它是Python标准库的一部分。
您可以使用--source命令行指定要测量的源 switch,或[run]源配置值。值是一个列表 目录或包名称。如果指定,只在内部来源 将测量这些目录或包。指定源 选项还允许coverage.py报告未执行的文件,因为 它可以在源树中搜索尚未测量的文件 所有。只有可导入的文件(树的根目录或文件中的文件) 将考虑带有__init__.py文件的目录和文件 将跳过他们名字中不寻常的标点符号(他们是 假设是由文本编辑器编写的临时文件。)
您可以使用--include进一步微调coverage.py的注意力 和--omit开关(或[run] include和[run]省略配置 值)。 --include是文件名模式列表。如果指定,则仅 将测量与这些模式匹配的文件。 --omit也是一个列表 文件名模式,指定不测量的文件。如果两者 指定include和omit,首先将文件集缩减为 只有匹配包含模式的那些,然后匹配的任何文件 省略模式将从集合中删除。
include和omit文件名模式遵循典型的shell语法:* 匹配任意数量的字符和?匹配单个字符。 以通配符开头的模式按原样使用,其他 模式是相对于当前目录解释的。
源,包含和省略值都共同确定 将被测量的来源。