首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何导入在不同机器上执行的Pycharm中的代码覆盖率?

如何导入在不同机器上执行的Pycharm中的代码覆盖率?
EN

Stack Overflow用户
提问于 2020-04-02 15:17:59
回答 1查看 473关注 0票数 2

我已经在PyCharm论坛上发布了这篇文章,但几天后没有得到任何回应。所以我想我应该在这里问一下。

我的目标是将在非PyCharm进程中运行的PyCharm结果导入到PyCharm中,以便使用PyCharm附带的所有覆盖率编辑器特性。

我使用的是PyCharm专业版,所以我可以访问覆盖功能。

我有无法在PyCharm中直接运行的python代码,因为它需要在数据库服务器进程中运行(如果有人好奇的话,PL/Python在Postgres中)。

我使用数据库进程中的覆盖率包来生成json报告,但我也可以以coverage.py支持的任何方式导出该格式。

根据Pycharm关于管理сodeс超期套件的文档,应该有一种方法

“上传.一个覆盖套件”

说明书上说,为了做到这一点

“单击Add按钮并在打开的对话框中选择必要的.es文件。”

.es文件的格式是什么类型?coverage.py可以直接导出该格式吗?或者这与“构建服务器”有关?我在谷歌上找不到任何与.es文件+ coverage.py相关的内容,而搜索PyCharm文档中.es的唯一相关结果就是“管理代码覆盖套件”页面本身。

我尝试导入coverage.py生成的json报告和xml报告,但是PyCharm不允许我选择它(甚至不能显示它和"Add“对话框)。

为了将coverage.py结果导入PyCharm,我还能尝试什么呢?

谢谢你的帮助!

EN

Stack Overflow用户

发布于 2021-07-02 21:15:10

在过去的几个小时里,我一直被一个类似的问题困住了,现在终于让它起作用了。

在我的例子中,我试图让在码头容器中生成的代码覆盖率报告显示在我的PyCharm编辑器上。就我个人而言,我使用pytest & pytest-cov来生成报告,在幕后使用coverage.py,就像PyCharm一样。

首先,我面临着同样的问题:导入生成的coverage.xml只需将所有内容显示为所涵盖的0%。在通过PyCharm的集成测试运行工具运行项目来生成工作覆盖报告之后,我能够跟踪两个生成的代码覆盖率报告之间的差异。

结果是,代码覆盖率报告需要两个文件():由coverage.py生成的包含所有覆盖信息的SQLite数据库,以及XML格式的覆盖报告。这两个文件都需要有相同的文件名,注意扩展名。

示例工作文件

  • coverage.coverage
  • coverage.xml

显然,coverage.xml应该包含与sqlite相同的覆盖数据。您必须使用pycharm打开SQLite数据库,而不是使用XML报告。如果打开XML报告,它将无法工作。如果在SQLite数据库旁边没有XML,您将得到一个错误。

我的测试命令:

代码语言:javascript
运行
复制
pytest . --cov --cov-report xml

My .coveragerc:

代码语言:javascript
运行
复制
[run]
branch = True
data_file = coverage.coverage

使用上面的pytest配置,您应该将coverage.coveragecoverage.xml作为输出文件。在coverage.coverage Run> should 对话框中选择文件将为您提供一个工作覆盖输出。

请注意,--cov--cov-report选项来自pytest-cov python包。

使用以下PyCharm版本进行测试:

代码语言:javascript
运行
复制
PyCharm 2021.1.2 (Professional Edition)
Build #PY-211.7442.45, built on June 1, 2021
Runtime version: 11.0.11+9-b1341.57 amd64
VM: Dynamic Code Evolution 64-Bit Server VM by JetBrains s.r.o.
Windows 10 10.0
GC: ParNew, ConcurrentMarkSweep
Memory: 1979M
Cores: 24
Registry: external.system.auto.import.disabled=true
Non-Bundled Plugins: com.andrey4623.rainbowcsv (2.0), net.seesharpsoft.intellij.plugins.csv (2.17.0), org.jetbrains.plugins.go-template (211.6693.44), name.kropp.intellij.makefile (211.6693.108), com.intellij.kubernetes (211.7442.27), org.toml.lang (0.2.149.3939-211), com.deadlock.scsyntax (211.6693.111), intellij.prettierJS (211.7142.13), org.jetbrains.plugins.vue (211.7142.13), com.intellij.lang.jsgraphql (2.9.1), com.koxudaxi.pydantic (0.3.3), com.leinardi.pycharm.mypy (0.11.2), org.rust.lang (0.4.149.3939-211), org.intellij.plugins.hcl (0.7.10)
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60994981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档