py.test:错误:无法识别的参数: - cov = ner_brands --cov-report = term-missing --cov-config

时间:2014-10-27 14:37:39

标签: python pytest

当我尝试通过命令行运行我的测试时

py.test  file_name.py

我收到了这个错误:

py.test: error: unrecognized arguments: --cov=ner_brands --cov-report=term-missing --cov-config

我该如何解决这个问题?

6 个答案:

答案 0 :(得分:61)

如果你想将-cov参数传递给pytest,则需要

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)

sdonk的回答帮助了我。但由于我使用pipenv,我必须运行

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。)