我已经在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,我还能尝试什么呢?
谢谢你的帮助!
发布于 2021-07-02 21:15:10
在过去的几个小时里,我一直被一个类似的问题困住了,现在终于让它起作用了。
在我的例子中,我试图让在码头容器中生成的代码覆盖率报告显示在我的PyCharm编辑器上。就我个人而言,我使用pytest
& pytest-cov
来生成报告,在幕后使用coverage.py,就像PyCharm一样。
首先,我面临着同样的问题:导入生成的coverage.xml只需将所有内容显示为所涵盖的0%。在通过PyCharm的集成测试运行工具运行项目来生成工作覆盖报告之后,我能够跟踪两个生成的代码覆盖率报告之间的差异。
结果是,代码覆盖率报告需要两个文件():由coverage.py生成的包含所有覆盖信息的SQLite数据库,以及XML格式的覆盖报告。这两个文件都需要有相同的文件名,注意扩展名。
示例工作文件
显然,coverage.xml应该包含与sqlite相同的覆盖数据。您必须使用pycharm打开SQLite数据库,而不是使用XML报告。如果打开XML报告,它将无法工作。如果在SQLite数据库旁边没有XML,您将得到一个错误。
我的测试命令:
pytest . --cov --cov-report xml
My .coveragerc:
[run]
branch = True
data_file = coverage.coverage
使用上面的pytest配置,您应该将coverage.coverage
和coverage.xml
作为输出文件。在coverage.coverage
Run> should 对话框中选择文件将为您提供一个工作覆盖输出。
请注意,--cov
和--cov-report
选项来自pytest-cov
python包。
使用以下PyCharm版本进行测试:
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)
https://stackoverflow.com/questions/60994981
复制相似问题