Python 3.9.6 与 pytest 6.2.5 兼容吗?
Is Python 3.9.6 compatible with pytest 6.2.5?
我正在尝试测试用 pycharm 编写的 Django REST API 的视图和模型,并为此安装了 pytest。我已经编写了一些测试,当我想启动它们时,我收到以下错误消息:
ERROR: usage: _jb_pytest_runner.py [options] [file_or_dir] [file_or_dir] [...]
_jb_pytest_runner.py: error: unrecognized arguments: --cov=frontend --cov-report=html
然后我检查了我是否正确安装了 pytest,看起来我已经正确安装了。我同时安装了 Python 2.7.16 和 Python 3.9.6,但我正在使用 Python 3。这可能是兼容性问题还是其他问题?
我已经尝试通过终端使用 py.test 和 IDE 本身开始测试。我不断收到同样的错误消息。
我试过下面的方法:
py.test: error: unrecognized arguments: --cov=ner_brands --cov-report=term-missing --cov-config
但我似乎得到了同样的错误。
ERROR: usage: _jb_pytest_runner.py [options] [file_or_dir] [file_or_dir] [...]
_jb_pytest_runner.py: error: unrecognized arguments: --cov=frontend --cov-report=html
有谁知道我该如何解决这个问题?
提前致谢。
首先,是的,Python 3.9.6 与 pytest 6.2.5 兼容,但是,您似乎缺少一些依赖项。 pytest
是许多不同的 Python 软件包之一,您似乎已经成功安装了它,所以您已经完成了一半。
有几个不同的覆盖率插件可以与 pytest 一起使用,这些插件需要单独安装。以下是 Python 和 pytest 的两个最常见的覆盖率插件:
https://pypi.org/project/coverage/
https://pypi.org/project/pytest-cov/
第一个 coverage
安装有:
pip install coverage
第二个 pytest-cov
安装有:
pip install pytest-cov
根据您的 运行 命令,您似乎想使用 pytest-cov
。安装后,您可以通过调用 pytest --help
:
来验证 pytest 是否具有这些新选项
> pytest --help
...
coverage reporting with distributed testing support:
--cov=[SOURCE] Path or package name to measure during execution (multi-allowed). Use --cov= to
not do any source filtering and record everything.
--cov-reset Reset cov sources accumulated in options so far.
--cov-report=TYPE Type of report to generate: term, term-missing, annotate, html, xml (multi-
allowed). term, term-missing may be followed by ":skip-covered". annotate, html
and xml may be followed by ":DEST" where DEST specifies the output location.
Use --cov-report= to not generate any output.
--cov-config=PATH Config file for coverage. Default: .coveragerc
--no-cov-on-fail Do not report coverage if test run fails. Default: False
--no-cov Disable coverage report completely (useful for debuggers). Default: False
--cov-fail-under=MIN Fail if the total coverage is less than MIN.
...
或者,您可以使用 coverage
:
获得与您正在寻找的相同的结果
coverage run -m pytest
coverage html
coverage report
即使不使用 pytest-cov
选项,这也会为您提供覆盖率报告。
我正在尝试测试用 pycharm 编写的 Django REST API 的视图和模型,并为此安装了 pytest。我已经编写了一些测试,当我想启动它们时,我收到以下错误消息:
ERROR: usage: _jb_pytest_runner.py [options] [file_or_dir] [file_or_dir] [...]
_jb_pytest_runner.py: error: unrecognized arguments: --cov=frontend --cov-report=html
然后我检查了我是否正确安装了 pytest,看起来我已经正确安装了。我同时安装了 Python 2.7.16 和 Python 3.9.6,但我正在使用 Python 3。这可能是兼容性问题还是其他问题?
我已经尝试通过终端使用 py.test 和 IDE 本身开始测试。我不断收到同样的错误消息。
我试过下面的方法:
py.test: error: unrecognized arguments: --cov=ner_brands --cov-report=term-missing --cov-config
但我似乎得到了同样的错误。
ERROR: usage: _jb_pytest_runner.py [options] [file_or_dir] [file_or_dir] [...]
_jb_pytest_runner.py: error: unrecognized arguments: --cov=frontend --cov-report=html
有谁知道我该如何解决这个问题?
提前致谢。
首先,是的,Python 3.9.6 与 pytest 6.2.5 兼容,但是,您似乎缺少一些依赖项。 pytest
是许多不同的 Python 软件包之一,您似乎已经成功安装了它,所以您已经完成了一半。
有几个不同的覆盖率插件可以与 pytest 一起使用,这些插件需要单独安装。以下是 Python 和 pytest 的两个最常见的覆盖率插件:
https://pypi.org/project/coverage/
https://pypi.org/project/pytest-cov/
第一个 coverage
安装有:
pip install coverage
第二个 pytest-cov
安装有:
pip install pytest-cov
根据您的 运行 命令,您似乎想使用 pytest-cov
。安装后,您可以通过调用 pytest --help
:
> pytest --help
...
coverage reporting with distributed testing support:
--cov=[SOURCE] Path or package name to measure during execution (multi-allowed). Use --cov= to
not do any source filtering and record everything.
--cov-reset Reset cov sources accumulated in options so far.
--cov-report=TYPE Type of report to generate: term, term-missing, annotate, html, xml (multi-
allowed). term, term-missing may be followed by ":skip-covered". annotate, html
and xml may be followed by ":DEST" where DEST specifies the output location.
Use --cov-report= to not generate any output.
--cov-config=PATH Config file for coverage. Default: .coveragerc
--no-cov-on-fail Do not report coverage if test run fails. Default: False
--no-cov Disable coverage report completely (useful for debuggers). Default: False
--cov-fail-under=MIN Fail if the total coverage is less than MIN.
...
或者,您可以使用 coverage
:
coverage run -m pytest
coverage html
coverage report
即使不使用 pytest-cov
选项,这也会为您提供覆盖率报告。