当我尝试通过命令行运行我的测试时
py.test file_name.py
我收到了这个错误:
py.test: error: unrecognized arguments: --cov=ner_brands --cov-report=term-missing --cov-config
我该如何解决这个问题?
答案 0 :(得分:61)
pytest-cov package,默认情况下不应传递它。您使用的是py.test的修改版本吗?
pip install pytest-cov
可以解决您的问题。
答案 1 :(得分:3)
对于那些使用CentOS 6的人来说,setuptools
的版本已经过时了,您还需要升级它:
pip install pytest-cov
pip install --upgrade setuptools
安装pip install pytest-cov
之后:
~ # py.test --version
This is pytest version 3.0.5, imported from /usr/lib/python2.6/site-packages/pytest.pyc
~ # pip install --upgrade setuptools
[...]
Successfully installed setuptools-30.3.0
~ # py.test --version
This is pytest version 3.0.5, imported from /usr/lib/python2.6/site-packages/pytest.pyc
setuptools registered plugins:
pytest-cov-2.4.0 at /usr/lib/python2.6/site-packages/pytest_cov/plugin.py
答案 2 :(得分:1)
pipenv install pytest_cov
答案 3 :(得分:1)
如果这里的其他答案对您不起作用,则可能是在系统的其他位置安装了py.test。就我而言,我在虚拟环境中遇到了此处描述的问题,但事实证明pytest默认为我的系统安装(未安装pytest-cov)。
停用您的虚拟环境或启动新的Shell并运行以下命令进行确认:
pip3 freeze | grep pytest
(或pip freeze | grep pytest
(如果您正在运行python2)
如果找到它,请尝试将其卸载,然后重新激活您的虚拟环境,然后重试。
答案 4 :(得分:0)
证明我的版本不匹配。
我将版本更改为
pytest="*"
pytest-cov="*"
它开始工作。
答案 5 :(得分:0)
在我的Ubuntu上,我也遇到了类似的问题,这是由于pytest
的二进制文件有误造成的:
py.test --version
This is pytest version 4.6.11, imported from /home/myhome/.local/lib/python2.7/site-packages/pytest.pyc
但是我当前的python设置(python --version
)是3.7.7.
。我不得不运行它:
python -m pytest --version
pytest 6.2.1
类似地,您可以运行python -m pytest file_name.py
或进行覆盖python -m pytest --cov=my_project tests/
。
我总是建议特别是在存在任何问题时进行检查,我认为用-m
而不是直接使用pytest
来运行它是一个好习惯,因为它很容易发生,它指向不同的版本而不是您当前python环境中应使用的版本。 (请参见类似的说明here。)