我是否应该关心我的测试如何涵盖我在项目中使用的外部库?
py.test --cov显示所有文件的覆盖方式,包括我的virtualenv目录中的文件。如何使输出仅显示我编写的模块的覆盖范围?
答案 0 :(得分:13)
在项目的根目录中,创建包含以下内容的文件.coveragerc
[run]
omit = path_to_libs_to_omit/*
根据您的设置,您可能需要将--cov-config=path/to/.coveragerc
添加为py.test命令的选项。
您可以使用更多选项to configure coverage。
答案 1 :(得分:8)
您应该将模块的名称添加到--cov
命令行选项,例如表单pytest-cov
文档:
py.test --cov=myproj tests/
这会将覆盖范围限制为模块myproj
及其所有子模块。
答案 2 :(得分:1)
@alexamici 答案是 virtualenvs 的正确答案,但为了完整起见,添加 pyproject.toml
(python 项目的建议配置文件)设置:
[tool.coverage.run]
omit = [
"file/to/exclude.py",
"other/file.py",
"some/path/*"
]
答案 3 :(得分:0)
这是我设法做到的:
db.Debug().Model(&Booking{}).Select("bookings.id, bookings.user, bookings.members, bookings.class_id, classes.name as class_name").Joins("left join classes on bookings.class_id = classes.id").Scan(&bookings)
pytest.py
[pytest]
python_files = tests.py test_*.py *_tests.py
addopts = -v -p no:warnings --nomigrations --cov=. --no-cov-on-fail
coveragerc