问题标签 [pytest-cov]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
328 浏览

docker - 在容器停止运行之前将文件复制到主机

我在 docker 容器中运行 Flask 应用程序,将其与 postgres 容器链接,并使用 pytest 进行测试。如果我运行命令

我的测试运行了,我可以看到输出,但是如何cov_html在这个容器停止运行之前复制覆盖目录?我希望能够在我的浏览器中以 html 格式查看覆盖率报告。

我当前的解决方法非常hacky,docker run -it --env-file=.env --link postgres-test app bash然后pytest直接在容器中运行,而容器仍在运行时,我docker cp进入本地目录。

我宁愿只运行类似于原始命令的东西,当 pytest 完成时,本地目录会被最新的覆盖率报告覆盖,所以我需要做的就是刷新浏览器来查看更改。

0 投票
1 回答
360 浏览

python - web.py 应用程序上的 Pytests 不包括方法代码

首先,很抱歉,如果 linguo 不是 100% 正确或某些东西没有 100% 的意义,我对 Web 应用程序开发和一般堆栈溢出的发布还是很陌生。

我有一个 web.py 应用程序,需要使用 pytest 测试其功能并使用pytest-cov. 我让测试工作并对响应进行断言,但是当我生成代码报告时,方法内的所有代码行都没有被发现,因此测试覆盖率非常低(23%)

我通过 cmd 在我的存储库中成功运行pytest --cov并获得了覆盖结果。但后来我尝试使用coverage run -m pytest test_Server.py并运行coverage report以获得更多细节。

在这份报告中,我可以看到我遗漏了哪些代码行,并且除了每个方法/类的定义之外,我遗漏了所有这些代码。

我尝试过的另一件事是pytest --cov=Server.py,这给了我错误

服务器.py

测试服务器.py

这是我目前正在运行的一个非常简化的版本,我设法通过一种或另一种方式使测试正常工作并正确断言响应。

我期望的是方法中的代码被测试覆盖,但实际输出告诉我只覆盖了方法的定义,没有其他内容。

0 投票
2 回答
605 浏览

python - 如何将 thrift 服务器或 TCP 服务器作为 pytest 夹具运行?

平台 linux2, python 2.7.12-final-0

我的集成测试 ping 外部服务器,但我想更改它以使用测试夹具。

几天来,我一直在尝试将 Thrift 库 TCP 服务器作为 pytest 中的会话范围固定装置运行。我已经尝试将服务器作为后台线程运行,这样我的测试就不会被阻止运行。

对于我的每个测试,我从 pytest 库代码中得到一个错误:

这是一个我没有找到很好的文档或支持的问题,所以我不得不问这个问题..如何将 TCP 服务器设置为我的测试可以使用的 pytest 夹具?

作为推论,这是我应该自己动手的情况,还是有一个好的插件来支持这个 pytest 用例?同样,我的搜索在这方面几乎没有出现。

0 投票
1 回答
81 浏览

python - 关键 - 在 Travis CI 中运行时出错| pytest

在 Travis CI 上运行 Pytest 时,我收到 Key -Error。请在下面找到我的程序:

对应的pytest如下:

上面的测试在我的本地机器上成功运行。但不是我 Travis CI,请找到 Travis CI 日志的链接:

https://travis-ci.org/pythonprogsnscripts/geekttrustproblems/builds/570241873

如果退伍军人可以提出一些想法,那就太好了

0 投票
2 回答
856 浏览

django - 为什么 PyTest 覆盖率报告中缺少我项目的大部分 Django 文件?

我正在运行pytest-covpytest-django使用tox. 我有一个非常简单的tox.ini文件,文件有限omit。问题是当我运行pytestusing时tox -e unit,我得到一个有限的覆盖率报告:

我所有的 Django 应用程序components都有许多文件应该包含在报告中,包括appsserializerssignalsurlsviews(标准 Django 结构)。有人知道我缺少什么吗?我在 , , 和 的各种文档中所读到的tox.ini内容似乎与我在 、 、 和 的各种文档中所读到的完全一致pytestpytest-djangopytest-covcoverage一定遗漏了一些重要的东西!

tox.ini

0 投票
1 回答
562 浏览

python-3.x - 在 Travis-CI 中测试 CLI 应用程序时,Pytest 覆盖返回不同的覆盖结果

我的项目是一个 python CLI 应用程序,我使用 Travis 作为 CI。我使用脚本在本地测试它

它给了我结果

但是,当它在 Travis 中运行时,结果只有

您可以在travis中看到完整的日志。

我相信问题的根源在于,因为它是一个 CLI 应用程序,所以我使用它进行测试subprocess.run(CLI_COMMAND),使得 pytest-cov 无法检测到来自子进程的跟踪。但它适用于我的本地机器。

当我检查 travis 覆盖结果中缺少的行时,看起来函数的主体都被忽略了。

我怀疑这可能是因为不同的 Python 环境(与sys.settrace行为有关)。

0 投票
1 回答
1307 浏览

python-3.x - 在现有 Python/Flask 应用程序上实现代码覆盖率和单元测试

无法让这个实现下来。

我需要什么:我现有的烧瓶应用程序的代码覆盖率结果,最好使用与 pytest 兼容的单元测试。

我所看到的:我只看到在我的应用程序启动时执行的行的覆盖范围。当我使用 pytest 或 postman 向我的服务器发送请求时,覆盖率指标不会改变。也就是说,我可以启动服务器、停止它,并获得与启动它、发送请求和停止它相同的结果。

我已经使用 pytest、pytest-cov 和 coverage.py 进行了调查。

我在 site_packages 中实现了 sitecustomize.py 覆盖插件解决方法以支持子进程覆盖,但没有效果。

我正在运行这样的覆盖服务器: coverage run --source . app.py -m

然后在一个新的终端中,我像这样运行 pytest: pytest

然后我 ctrl+c 服务器,运行 coverage report -m 查看我的输出。

我的 app.py 有这样的内容:

理想情况下,我想运行一个命令来启动 app.py 服务器,执行 pytest,并记录实际的代码覆盖率。有人遇到过这样的事情吗?

0 投票
3 回答
1751 浏览

python - 没有名为“后端”的模块 [pytest 覆盖率]

我有这样的结构:

当我运行命令时:

我得到:

为什么不能导入库?

当结构是这样的:

正确执行。

如何使用第一个显示的结构在我的项目中运行覆盖?

0 投票
0 回答
88 浏览

celery - 使用 Pytest,是否可以从 celery 运行的子进程中获取覆盖信息?

我正在使用 Pytest 测试 Python 应用程序:

pytest -s --cov=myApp

然而,我的应用程序的一个进程与 Celery 异步运行。测试模块正确运行 Celery 进程,但我没有得到任何覆盖率信息。

是否可以从 celery 运行的进程中获得覆盖?

我查看了Celery testing,但我不想直接/单独测试异步进程,因为我想检查 MyAPP 中的进程如何使用任务 ID 执行其他操作。

我还用 --cov 添加了任务模块,但我仍然没有得到任何覆盖

0 投票
0 回答
1005 浏览

python - pytest-cov 不使用新的覆盖版本 5.X 生成报告,适用于覆盖版本 4.4.2

我有以下tox.ini项目

默认情况下 my 中没有版本控制tox-requirements.txt,当它安装时,它总是安装最新的包。但它在coverage-badge -o coverage.svg -f命令上失败了。

如果我尝试手动运行覆盖率,它会起作用并生成报告

当我检查coverage版本时coverage==5.0.1,如果我安装旧版本,4.4.2那么它tox也可以使用命令。

之后我尝试了tox

我们是否必须添加任何新标志才能使其正常工作pytest-cov