首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >外部库代码覆盖率的pytest-cov选项

外部库代码覆盖率的pytest-cov选项
EN

Stack Overflow用户
提问于 2021-06-19 02:30:32
回答 1查看 107关注 0票数 0

目前,我正在尝试为python项目实现一个自动化测试工具。可以使用pytest-cov模块从外部库中收集代码覆盖率吗?据我所知,只有coverage模块会报告来自外部库的代码覆盖率!

示例:

代码语言:javascript
复制
import random


def test_rand():
  assert random.randint(0,10) == 5

使用命令coverage run -m --pylib pytest file.py::test_rand,我们可以从外部库(例如,在我们的例子中是随机模块)获得代码覆盖率。

有没有可能用pytest-cov做同样的事情呢?

EN

回答 1

Stack Overflow用户

发布于 2021-07-06 07:10:02

默认情况下,pytest-cov将报告所有库的覆盖范围,包括外部库。

如果你对你的代码运行pytest --cov,它会产生很多代码行,包括pypytestimportlib等等。

要限制覆盖率的范围,即您只想随机检查覆盖率,只需将模块名称传递给覆盖选项,例如pytest --cov=random。然后,覆盖率报告只考虑命名的模块。您还可以通过指定多个cov值来传递多个模块,例如pytest --cov=random --cov=pytest

下面是一个运行测试的示例,它只针对random生成覆盖率

代码语言:javascript
复制
$ pytest --cov=random
====== test session starts ======
platform linux -- Python 3.6.12, pytest-6.2.4, py-1.10.0, pluggy-0.13.1
plugins: cov-2.12.1
collected 1 item

test_something.py F
[100%]

=========== FAILURES ============
___________ test_rand ___________

    def test_rand():
      import random
    
>     assert random.randint(0,10) == 5
E     AssertionError: assert 0 == 5
E      +  where 0 = <bound method Random.randint of <random.Random object at ...>>(0, 10)

test_something.py:6: AssertionError

---------- coverage: platform linux, python 3.6.12-final-0 -----------
Name             Stmts   Miss  Cover
/.../random.py     350    334     --
TOTAL              350    334     5%
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68039957

复制
相关文章

相似问题

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