当前位置: 首页 > 知识库问答 >
问题:

使用pytest覆盖率和codecov。用Python实现io

易研
2023-03-14

当我运行pytest--cov时,我得到了约60%的覆盖率值。在codecov上生成的报告。将代码推送到github后的io显示100%。我不明白这两个命令有什么不同,我以为运行的是同一个命令。

科德科夫。木卫一节目

Files       •   •   •   Coverage
 __init__.py    2   2   0   0   100.00%
 c_wrapper.py   5   5   0   0   100.00%
 fibonacci.py   13  13  0   0   100.00%
 tests/test_fibonnaci.py    39  39  0   0   100.00%
Folder Totals (4 files) 59  59  0   0   100.00%
Project Totals (4 files)    59  59  0   0   100.00%

但是跑步

pytest --cov=fibonacci fibonacci/tests

显示

----------- coverage: platform linux, python 3.7.4-final-0 -----------
Name                                Stmts   Miss Branch BrPart  Cover
---------------------------------------------------------------------
fibonacci/__init__.py                   2      2      0      0     0%
fibonacci/c_wrapper.py                  5      5      0      0     0%
fibonacci/fibonacci.py                 13     13      6      0     0%
fibonacci/tests/test_fibonnaci.py      39      0      0      0   100%
---------------------------------------------------------------------
TOTAL                                  59     20      6      0    60%

差异来自哪里,哪个是正确的?

共有2个答案

闽念
2023-03-14

跑步和跑步似乎有区别(原因我不明白,但我想知道)

pytest --cov=fibonacci fibonacci/tests

python -m pytest --cov=fibonacci fibonacci/tests

做后期节目全覆盖

于恺
2023-03-14

正如您在pytest文档中所看到的,使用以下各项的区别:

python -m pytest [...]

pytest [...]

“通过python调用也会将当前目录添加sys.path

这可能是覆盖范围的不同。但是,我相信在pytest-cov之前,其他插件正在被调用。

Pytest有一个早期加载参数-p,它强制插件在任何其他插件之前被调用。

下面的命令可以解决封面问题。

pytest -p pytest_cov --cov

此外,对于测试,您可以尝试运行以下命令,以检查哪些行未被覆盖,并将两者进行比较:

pytest --cov-report term-missing --cov
python -m pytest --cov-report term-missing --cov
 类似资料:
  • 面对使用覆盖率运行pytest时出现的问题,我已经浏览了SO帖子,但无法解决此问题,我相信我在这里遗漏了一些东西。。 获取以下错误,其中用户是我项目的应用程序 我的测试。ini文件内容 [pytest]DJANGO_设置_模块=cloudstack。设置 python\u文件=测试。py测试*。py*\u测试。py addopts=-v--ignore=venv--cov=--cov报告=html

  • 我正在用pytest--cov测试我的代码,但是我的一个模块得到了0%的覆盖率。 该模块有一个类声明: 该测试执行以下操作: 测试覆盖率为0%-我做错了什么?

  • 我有一个在相当大的django项目上使用Pytest的工作测试套件。问题是我无法实现适当的结果使用覆盖,我想知道这是否可能是因为项目目录结构。 考虑以下目录树示例: 以及覆盖报告的示例输出: 查看html报告,我可以看到许多由测试执行的语句没有被认为是覆盖的,尽管它们应该被覆盖。我认为这个覆盖数据是不完整的,它似乎只考虑了导入、定义和文档字符串作为覆盖。 无法确定覆盖率出现错误的原因,我尝试运行单

  • 我正在使用Mocha测试我的NodeJS应用程序。我不知道如何使用它的代码覆盖功能。我试着谷歌它,但没有找到任何适当的教程。请帮忙。

  • 我正在尝试使用JaCoCo-javaagent传递VM参数来获得代码覆盖率 -Java agent:/test/jaco co/jaco agent . jar = dest file =/test/jaco co/jaco co . exec,includes=com。*,append=true 我能在jacoco中获得一些价值。执行文件,但无法获取覆盖率报告。我怎样才能把jacoco转化成。执

  • 我不熟悉使用pytest和pytest cov,因为它已经从unittest覆盖范围切换过来。派克 我首先将自动测试设置为以这种方式运行: 这给了我这样的输出到终端: 然后我想生成一个xml报告,所以我更改了命令: 我遇到的问题是,在添加后,我不再得到任何输出到终端 查看pytest cov的文档,我发现: 这三个报告选项输出到文件而不在终端上显示任何内容:[继续显示xml、html和注释报告选项