py.test: Fehler: nicht erkannte Argumente: --cov = ner_brands --cov-report = Begriff fehlt --cov-config

69

wenn ich versuche, meinen Test über die Befehlszeile auszuführen

py.test  file_name.py

Ich habe diesen Fehler erhalten:

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

Wie kann ich das beheben?

Hallo Junge
quelle
Für den Fall, dass Sie nach dem Befehl apt suchen, installieren Sie Python-Coverage
Reto Tschuppert

Antworten:

136

Das Paket pytest-cov ist erforderlich, wenn Sie --cov-Argumente an pytest übergeben möchten. Standardmäßig sollte es jedoch nicht übergeben werden. Verwenden Sie eine modifizierte Version von py.test?

pip install pytest-cov

würde Ihr Problem beheben.

sdonk
quelle
Wenn Sie dieses Problem immer noch haben, sehen Sie sich die Antwort von @Samuel Phan unten an.
AlexLordThorsen
1
Dies behebt weder mein noch das folgende Problem. Ich benutze Python 2.7.17, py.test == 3.2.2 und pytest-cov == 2.5.1 unter Windows 7
Srđan Popić
6

Für diejenigen, die CentOS 6 verwenden, ist die Version von setuptoolsalt und Sie müssen sie auch aktualisieren:

pip install pytest-cov
pip install --upgrade setuptools

Kurz nach der Installation 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
Samuel Phan
quelle
3

Wenn die anderen Antworten hier bei Ihnen nicht funktioniert haben, haben Sie möglicherweise py.test an einer anderen Stelle in Ihrem System installiert. In meinem Fall bin ich in einer virtuellen Umgebung auf das hier beschriebene Problem gestoßen, aber es stellte sich heraus, dass pytest standardmäßig meine Systeminstallation verwendete (auf der pytest-cov nicht installiert war).

Deaktivieren Sie Ihre virtuelle Umgebung oder starten Sie eine neue Shell und führen Sie Folgendes aus, um dies zu bestätigen:

pip3 freeze | grep pytest

(oder pip freeze | grep pytestwenn Sie python2 ausführen)

Wenn Sie es finden, deinstallieren Sie es, reaktivieren Sie dann Ihre virtuelle Umgebung und versuchen Sie es erneut.

daveruinseverything
quelle
1

sdonks antwort hat mir geholfen. Aber da ich pipenv benutze, musste ich rennen

pipenv install pytest_cov
Brontes
quelle
0

Es stellt sich heraus, dass meine Versionen nicht übereinstimmen.

Ich habe die Versionen auf geändert

pytest="*"
pytest-cov="*"

und es fing an zu arbeiten.

Souradeep Nanda
quelle
0

Auf meinem Ubuntu hatte ich auch ein ähnliches Problem, das durch eine falsche Binärdatei für Folgendes verursacht wurde pytest:

py.test --version
This is pytest version 4.6.11, imported from /home/myhome/.local/lib/python2.7/site-packages/pytest.pyc

Aber mein aktuelles Python-Setup ( python --version) war 3.7.7.. Ich musste stattdessen Folgendes ausführen:

python -m pytest --version
pytest 6.2.1

Ebenso können Sie laufen python -m pytest file_name.pyoder für die Abdeckungpython -m pytest --cov=my_project tests/ .

Ich empfehle immer, dies zu überprüfen, insbesondere wenn es Probleme gibt, und ich denke, es ist eine gute Praxis, dies auszuführen, -manstatt es pytestdirekt zu verwenden, da dies leicht auf eine andere Version verweist als die, die in Ihrer aktuellen Python-Umgebung verwendet werden sollte. (Siehe ähnliche Erklärung hier .)

Nerxis
quelle