从预提交挂钩中排除 pytest files/marks
Excluding pytest files/marks from pre-commit hooks
有没有办法在预提交挂钩期间从 运行 中排除标有 pytest.mark
的 pytest?
特别是,我想排除标记为集成测试的测试。
一个测试的内容是这样的
pytestmark = [pytest.mark.integration, pytest.mark.reporting_api]
### some tests
并且 .pre-commit-conifg.yaml
pytest
配置是
- repo: local
hooks:
- id: pytest
name: pytest
entry: pytest test/
language: system
pass_filenames: false
types: [python]
stages: [commit, push]
2c:运行 测试作为 pre-commit
的一部分不是一个好主意——根据我的经验,它们会太慢,你的贡献者可能会感到沮丧并关闭完全框架
就是说,它应该像将您想要的参数添加到 entry
或 args
一样简单——就我个人而言,在使用 repo: local
时我更喜欢 entry
钩子(因为没有什么可以“按惯例”覆盖 args
)
在你的情况下,这看起来像:
- repo: local
hooks:
- id: pytest
name: pytest
entry: pytest test/ -m 'not integration and not reporting_api'
language: system
pass_filenames: false
types: [python]
stages: [commit, push]
免责声明:我创建了 pre-commit 并且我是 pytest 核心开发人员
有没有办法在预提交挂钩期间从 运行 中排除标有 pytest.mark
的 pytest?
特别是,我想排除标记为集成测试的测试。
一个测试的内容是这样的
pytestmark = [pytest.mark.integration, pytest.mark.reporting_api]
### some tests
并且 .pre-commit-conifg.yaml
pytest
配置是
- repo: local
hooks:
- id: pytest
name: pytest
entry: pytest test/
language: system
pass_filenames: false
types: [python]
stages: [commit, push]
2c:运行 测试作为 pre-commit
的一部分不是一个好主意——根据我的经验,它们会太慢,你的贡献者可能会感到沮丧并关闭完全框架
就是说,它应该像将您想要的参数添加到 entry
或 args
一样简单——就我个人而言,在使用 repo: local
时我更喜欢 entry
钩子(因为没有什么可以“按惯例”覆盖 args
)
在你的情况下,这看起来像:
- repo: local
hooks:
- id: pytest
name: pytest
entry: pytest test/ -m 'not integration and not reporting_api'
language: system
pass_filenames: false
types: [python]
stages: [commit, push]
免责声明:我创建了 pre-commit 并且我是 pytest 核心开发人员