pytest --cov 在命令行中显示详细报告,但在 githook 预提交期间不显示
pytest --cov shows detailed report in command line, but not during githook pre-commit
当我运行pytest src/packages --cov --cov-branch --cov-report term-missing
时,我用Stmts得到一份详细的报告|小姐 |分支机构 |分部 |封面 |如下面的屏幕截图所示缺失:
Report in Command Line Working
但是,当我 运行 pre-commit run pytest-cov-src-packages
(或 git 提交)使用如下所示的预提交挂钩时,我只得到一个“pytest-cov-src-packages. ...................................................通过" 命令行中的语句。没有报告或任何东西。刚刚通过。
- id: pytest-cov-src-packages
name: pytest-cov-src-packages
language: system
entry: pytest src/packages --cov --cov-branch --cov-report term-missing
types: [python]
stages: [commit]
pass_filenames: false
always_run: true
为什么 运行在命令行中使用 pytest 与触发条目:来自预提交的片段会产生不同的结果有什么原因吗?作为 git 提交的一部分,我希望在命令行中获得详细报告,如图所示,在预提交过程中工作。
谢谢!
Is there any reason why running pytest in command line vs. firing off the entry: snippet from the pre-commit yields a different result?
因为pre-commit
经常被配置为运行很多测试,它被设计成默认提供摘要输出。您的 pre-commit
条目产生的任何输出都会被成功测试丢弃;您只会在失败时看到输出。
如果您总是想要查看输出,您可以运行pre-commit
使用-v
标志。
比较:
$ pre-commit run --all-files
pytest-cov-src-packages..................................................Passed
有:
$ pre-commit run --all-files -v
pytest-cov-src-packages..................................................Passed
- hook id: pytest-cov-src-packages
- duration: 0.21s
============================= test session starts ==============================
platform linux -- Python 3.10.4, pytest-7.1.2, pluggy-1.0.0
rootdir: /home/lars/tmp/python
plugins: cov-3.0.0
collected 1 item
test_foo.py . [100%]
---------- coverage: platform linux, python 3.10.4-final-0 -----------
Name Stmts Miss Branch BrPart Cover Missing
---------------------------------------------------------
test_foo.py 2 0 0 0 100%
---------------------------------------------------------
TOTAL 2 0 0 0 100%
============================== 1 passed in 0.04s ===============================
当我运行pytest src/packages --cov --cov-branch --cov-report term-missing
时,我用Stmts得到一份详细的报告|小姐 |分支机构 |分部 |封面 |如下面的屏幕截图所示缺失:
Report in Command Line Working
但是,当我 运行 pre-commit run pytest-cov-src-packages
(或 git 提交)使用如下所示的预提交挂钩时,我只得到一个“pytest-cov-src-packages. ...................................................通过" 命令行中的语句。没有报告或任何东西。刚刚通过。
- id: pytest-cov-src-packages
name: pytest-cov-src-packages
language: system
entry: pytest src/packages --cov --cov-branch --cov-report term-missing
types: [python]
stages: [commit]
pass_filenames: false
always_run: true
为什么 运行在命令行中使用 pytest 与触发条目:来自预提交的片段会产生不同的结果有什么原因吗?作为 git 提交的一部分,我希望在命令行中获得详细报告,如图所示,在预提交过程中工作。
谢谢!
Is there any reason why running pytest in command line vs. firing off the entry: snippet from the pre-commit yields a different result?
因为pre-commit
经常被配置为运行很多测试,它被设计成默认提供摘要输出。您的 pre-commit
条目产生的任何输出都会被成功测试丢弃;您只会在失败时看到输出。
如果您总是想要查看输出,您可以运行pre-commit
使用-v
标志。
比较:
$ pre-commit run --all-files
pytest-cov-src-packages..................................................Passed
有:
$ pre-commit run --all-files -v
pytest-cov-src-packages..................................................Passed
- hook id: pytest-cov-src-packages
- duration: 0.21s
============================= test session starts ==============================
platform linux -- Python 3.10.4, pytest-7.1.2, pluggy-1.0.0
rootdir: /home/lars/tmp/python
plugins: cov-3.0.0
collected 1 item
test_foo.py . [100%]
---------- coverage: platform linux, python 3.10.4-final-0 -----------
Name Stmts Miss Branch BrPart Cover Missing
---------------------------------------------------------
test_foo.py 2 0 0 0 100%
---------------------------------------------------------
TOTAL 2 0 0 0 100%
============================== 1 passed in 0.04s ===============================