【问题标题】:Using pytest coverage and codecov.io with Python在 Python 中使用 pytest 覆盖率和 codecov.io
【发布时间】:2019-10-23 16:38:22
【问题描述】:

当我运行 pytest --cov 时,我得到了 ~60% 的覆盖率值。代码推送到github后codecov.io上生成的报告显示100%。我不明白这两者有何不同,我以为正在运行相同的命令。

Codecov.io 展示

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%

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

【问题讨论】:

    标签: python coverage.py codecov


    【解决方案1】:

    你可以在pytestdocumentation看到使用的区别:

    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
    

    【讨论】:

      【解决方案2】:

      似乎(出于我不明白但想这样做的原因)运行之间存在差异

      pytest --cov=fibonacci fibonacci/tests
      

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

      执行后面的操作会显示完整的覆盖范围

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-02-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-12
        • 1970-01-01
        相关资源
        最近更新 更多