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?
Antworten:
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?
würde Ihr Problem beheben.
quelle
Für diejenigen, die CentOS 6 verwenden, ist die Version von
setuptools
alt und Sie müssen sie auch aktualisieren: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
quelle
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:
(oder
pip freeze | grep pytest
wenn Sie python2 ausführen)Wenn Sie es finden, deinstallieren Sie es, reaktivieren Sie dann Ihre virtuelle Umgebung und versuchen Sie es erneut.
quelle
sdonks antwort hat mir geholfen. Aber da ich pipenv benutze, musste ich rennen
quelle
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.
quelle
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
) war3.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.py
oder 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,
-m
anstatt espytest
direkt 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 .)quelle