问题标签 [pytest-cov]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
62 浏览

python - pytest-cov 功能包特定覆盖阈值

我正在使用 pytest-cov 对我的 repo 进行覆盖率检查。是否有一种功能可以让我为存储库中的特定包/包指定覆盖阈值?目前--cov-fail-under,如果整体覆盖率低于指定阈值,我的覆盖率条件将失败。假设我有一个目录结构如下(只是一个例子)

在这种假设场景中,我想为 Pkg4、Pkg5 和 Pkg7 指定阈值。同样在这种情况下,Pkg5 的计算不会包含在 Pkg 4 的计算中。我知道我可以生成覆盖率报告并实现它,但只是想确认是否有办法做到这一点开箱即用

0 投票
0 回答
147 浏览

python - 使用 MyPy 对 Python 进行类型检查会破坏测试覆盖率报告

我一直在向各种 python 项目添加使用 MyPy 的类型检查,我发现这样做会阻止 Coverage 正确生成测试覆盖率报告。具体来说,它可以防止覆盖覆盖它的 htmlcov 目录,如果我在运行覆盖之前删除此目录,它会按预期工作。

虽然 MyPy 和 Coverage 看起来应该完全不相关,但我在多个项目中看到了这种行为,总是在添加类型检查之后。

我在用:

  • 蟒蛇 3.9.6
  • pytest 6.2.4
  • pytest-cov 2.12.1
  • 覆盖率 5.5
  • 工作服 3.2.0
  • 我的 0.910

使用 pytest 生成覆盖率报告。

0 投票
1 回答
61 浏览

python - 使用 pytest 覆盖率,有没有办法判断哪些测试调用了特定语句?

我正在查看由 pytest-cov 生成的 html 覆盖率报告,我想知道是否可以找到哪些测试调用了特定行(哪些测试覆盖了特定行)。

0 投票
1 回答
79 浏览

python - 如何将 python 覆盖套件添加到 Intellij?

我正在将基本的 intellij 与 python 插件一起使用。我希望它的行为与 pycharm 非常相似,但我似乎无法配置代码覆盖率。

打开菜单Show Coverage Data会导致没有配置覆盖套件。我认为这应该来自 python 插件或一些 pytest 相关插件,但它是空的。我应该如何进行?难道我做错了什么?我应该安装其他东西吗?

0 投票
0 回答
55 浏览

python-3.x - 在 VS Code 中运行 pytest-cov 和 pytest

我正在尝试这样做,以便当我在测试资源管理器中运行测试时,它会同时在项目文件夹中自动生成一个 cov.xml 文件。我尝试在 VS Code 上的 pytest 参数字段中添加参数,但它似乎没有对测试资源管理器运行测试/pytest 的方式进行任何更改。我可能会遗漏一些东西,或者这可能不是可能的。

0 投票
0 回答
40 浏览

python - 为什么 pytest runner hammett 不支持 pytest_mock?

当我尝试使用 hammett 运行测试用例时,出现以下错误

缺少 1 个必需的位置参数:“嘲笑者”

在此之后,我在 setup.cfg 文件中添加了一些配置,如下所示

添加上面的行后,面对下面的错误

断言错误:此时不支持包范围。

注意:我没有在我的夹具中提到任何范围,所以默认情况下它采用“功能”作为范围。

0 投票
0 回答
22 浏览

python - 在终端中使用 pytest 时出现 ImportError

只需设置我的新 macbook,我就有 importIssues 运行我的 python 测试。

pytest --cov-config=.coveragerc --cov=main tests

我得到错误:

在我的旧笔记本电脑上运行相同的测试工作正常。有人说我需要用我的 PYTHONPATH 做点什么,但我不知道该怎么做。我已经使用 brew 安装了 python 3.9。

此外,通过按运行按钮在 pycharm 中运行测试也可以正常工作。所以它不仅仅在终端上工作。

  1. 文件结构:
    • 项目
      • 主要的
        • lambda_function
        • rds_config
      • 测试
        • test_lambda_function
        • test_rds_config

我如何导入: from main import lambda_function

0 投票
0 回答
42 浏览

python - Python 3.7 pytest 覆盖将没有“else”语句的“if”块标记为未覆盖

当我运行测试时,“if”块中的代码被调用并执行。但是 pytest-coverage 将其标记为缺失(覆盖范围减少)。

如果我这样写就暴露了

但是如果我添加一个“else”语句,它会将 if 块标记为已覆盖

我使用 python==3.7.12 pytest==6.2.5 pytest-cov==3.0.0 覆盖率==6.2

为什么它会这样工作,我该如何解决?我不能添加 else 语句,因为“if”中的动作必须在特定条件下执行,而不需要“else”的动作

0 投票
1 回答
123 浏览

python - 如何使用 tox 配置覆盖率?

我正在使用 tox 使用 tox -p(并行运行)在不同的环境上运行测试,但是在为所有测试生成覆盖率报告时遇到问题。

毒物.ini:

pyproject.toml 覆盖部分:

错误:

有人可以告诉我提供的配置有什么问题吗?

0 投票
0 回答
133 浏览

python - pytest-cov 显示不正确的测试覆盖率

我使用 pytest 和 pytest-cov 来获取测试覆盖率报告。

我的问题是:

为什么它显示测试文件具有 100% 的覆盖率(底部),而它们没有被完全覆盖?还有这些数字(18%、88%、100%)是什么意思?

pytest 如何知道测试代码覆盖了多少?

测试覆盖率报告

(使用此帐户我无法直接在我的帖子中发布图片)