pytest-cov 始终显示 Tavern 测试的 0 覆盖率
pytest-cov always show 0 coverage for Tavern test
我有一个 python3 应用程序 运行 flask
我正在使用 Tavern
和 pytest
作为测试用例。测试用例按预期执行并正确显示结果。但我总是得到 0% 的代码覆盖率。
这是 运行 测试的命令行:
python3 -m pytest --cov=api --cov-report html:reports/Coverage --cov-report term --junitxml=reports/UnitTest.xm
l --html=reports/TestSummary.html --self-contained-html
所有源代码都在api
模块下。并且覆盖结果仅显示每个模块中文件 __init__.py
的 100%
。它不显示真实源代码的任何覆盖率数据。
此项目中测试的依赖版本是:
flask==1.1.1
flask_testing==0.7.1
coverage>=4.0.3
nose>=1.3.7
pluggy>=0.3.1
py>=1.4.31
randomize>=0.13
pytest==4.6.4
pytest-cov>=2.6.0
tavern==0.26.4
pytest-html>=1.20.0
pytest-freezegun>=0.3.0
pytest-mock>=1.10.3
我项目中.coveragerc
的内容是:
[report]
exclude_lines =
if __name__ == .__main__.:
默认情况下(除非您使用 https://github.com/taverntesting/tavern-flask 等实验性插件),您的应用程序代码 运行 在不同的 OS 进程中您的测试正在 运行 中。
由于覆盖率识别哪些行已被执行的方式,它只能测试与运行正在进入的同一进程中的代码。您可以在此处阅读有关其工作原理的更多信息:https://coverage.readthedocs.io/en/v4.5.x/howitworks.html
实现您的目标 - 我假设是覆盖您的 Web 服务器代码,运行 您的烧瓶服务器 coverage.py,例如coverage run --source=app flask run
,然后 运行 你现在对服务器的测试(减去覆盖范围)。然后,覆盖率输出将包含有关当您杀死服务器时酒馆测试 运行ning 时执行了哪些行的信息。
我有一个 python3 应用程序 运行 flask
我正在使用 Tavern
和 pytest
作为测试用例。测试用例按预期执行并正确显示结果。但我总是得到 0% 的代码覆盖率。
这是 运行 测试的命令行:
python3 -m pytest --cov=api --cov-report html:reports/Coverage --cov-report term --junitxml=reports/UnitTest.xm
l --html=reports/TestSummary.html --self-contained-html
所有源代码都在api
模块下。并且覆盖结果仅显示每个模块中文件 __init__.py
的 100%
。它不显示真实源代码的任何覆盖率数据。
此项目中测试的依赖版本是:
flask==1.1.1
flask_testing==0.7.1
coverage>=4.0.3
nose>=1.3.7
pluggy>=0.3.1
py>=1.4.31
randomize>=0.13
pytest==4.6.4
pytest-cov>=2.6.0
tavern==0.26.4
pytest-html>=1.20.0
pytest-freezegun>=0.3.0
pytest-mock>=1.10.3
我项目中.coveragerc
的内容是:
[report]
exclude_lines =
if __name__ == .__main__.:
默认情况下(除非您使用 https://github.com/taverntesting/tavern-flask 等实验性插件),您的应用程序代码 运行 在不同的 OS 进程中您的测试正在 运行 中。
由于覆盖率识别哪些行已被执行的方式,它只能测试与运行正在进入的同一进程中的代码。您可以在此处阅读有关其工作原理的更多信息:https://coverage.readthedocs.io/en/v4.5.x/howitworks.html
实现您的目标 - 我假设是覆盖您的 Web 服务器代码,运行 您的烧瓶服务器 coverage.py,例如coverage run --source=app flask run
,然后 运行 你现在对服务器的测试(减去覆盖范围)。然后,覆盖率输出将包含有关当您杀死服务器时酒馆测试 运行ning 时执行了哪些行的信息。