如何使py.test --cov跳过virtualenv目录

Dav*_*Ari 15 virtualenv pytest python-2.7 test-coverage

我应该关心我的测试如何涵盖我在项目中使用的外部库吗?

py.test --cov显示所有文件的覆盖方式,包括我的virtualenv目录中的文件.如何使输出仅显示我编写的模块的覆盖范围?

Mic*_*zki 21

@alexamici 答案对于 virtualenvs 是正确的,但为了完整性,添加pyproject.toml(建议的 python 项目配置文件)设置:

[tool.coverage.run]
omit = [
    "file/to/exclude.py",
    "other/file.py",
    "some/path/*"
    ]
Run Code Online (Sandbox Code Playgroud)


sas*_*shk 20

在项目的根目录中,创建.coveragerc包含以下内容的文件:

[run]
omit = path_to_libs_to_omit/*
Run Code Online (Sandbox Code Playgroud)

根据您的设置,您可能需要添加--cov-config=path/to/.coveragercpy.test命令的选项.

您可以使用更多选项来配置coverage.

  • 值得一提的是,您可以通过使用逗号分隔列表来拥有多个路径 ```[run] omit = path_to_libs_to_omit/**,path_to_other_libs_to_omit/** ``` (8认同)

ale*_*ici 8

您应该将模块的名称添加到--cov命令行选项,例如表单pytest-cov文档:

py.test --cov=myproj tests/
Run Code Online (Sandbox Code Playgroud)

这会将覆盖范围限制在模块myproj及其所有子模块中.