首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pytest-cov -不要计算集成测试目录的覆盖率

pytest-cov -不要计算集成测试目录的覆盖率
EN

Stack Overflow用户
提问于 2020-03-09 21:20:27
回答 1查看 2K关注 0票数 3

我有以下目录结构:

代码语言:javascript
复制
./
    src/
    tests/
        unit/
        integration/

我想使用pytest来运行unit/integration/中的所有测试,但我只希望coverage.py在运行unit/测试时(而不是在运行integration/测试时)计算src/目录的覆盖率。

我现在使用的命令(计算tests/下所有测试的覆盖率):

代码语言:javascript
复制
pytest --cov-config=setup.cfg --cov=src

使用setup.cfg文件:

代码语言:javascript
复制
[tool:pytest]
testpaths = tests

[coverage:run]
branch = True

我知道我可以在集成测试中将@pytest.mark.no_cover装饰器添加到每个测试函数中,但是我更愿意标记整个目录,而不是装饰大量的函数。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-09 22:53:49

您可以动态地附加标记。下面的示例在pytest_collection_modifyitems钩子的自定义驱动中这样做。将代码放入项目根dir中的conftest.py中:

代码语言:javascript
复制
from pathlib import Path
import pytest


def pytest_collection_modifyitems(items):
    no_cov = pytest.mark.no_cover
    for item in items:
        if "integration" in Path(item.fspath).parts:
            item.add_marker(no_cov)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60608511

复制
相关文章

相似问题

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