问题标签 [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 回答
520 浏览

python - Python Coverage 将顶级包名变成句号

我有一个这样的项目:

如果我pytest这样跑:

然后结果中的顶级包coverage.xml被命名为.

但如果我pytest这样打电话:

然后顶级包被正确命名ex_secure

目前这是一个不错的解决方法,但并不理想。如果我添加更多包,我必须继续枚举它们(否则它们将在覆盖率报告中丢失)。此外,__init__.py未涵盖使用此机制。

我在这里做错了什么?

更新 1:

如果我直接运行 Python Coverage 而不是 using pytest-cov,它将按预期工作:

然后:

更新 2:

如果我像最初一样运行 PyTest,然后直接使用 Python Coverage 重新生成 XML 报告,重新生成的报告会得到更正,但数字略有不同:

然后:

0 投票
2 回答
2225 浏览

python - pytest-cov 不适用于 tox

这是我的tox.ini配置

当我运行时tox,我收到此错误

请注意,已安装软件包的列表不包括pytest-covand coverage,即使它们明确包含在 my requirements.txtand中,也tox.ini包括该行

直接运行pytest命令就可以了

如何让pytest-coveragetox 安装缺少的库?

更新 1

的内容requirements.txt

0 投票
1 回答
915 浏览

python - pytest 覆盖率 - 一行的点击数

我有一个文件,test_basic.py

我有另一个文件basic.py

为了获得覆盖率,我运行以下命令:

py.test --cov-report xml --cov=test/lib test/lib/test_basic.py

coverage.xml,我有覆盖率报告,第 6,7 行的示例basic.py是:

basic.py中,第 6,7 行被执行多次。有什么方法可以更改.coveragerc文件或其他方法,以便一行的命中数反映多次执行?

谢谢!

0 投票
0 回答
1374 浏览

jenkins - 在单个 jenkins 构建中显示两个覆盖率报告

我有一个 python 项目,其中包含四个子项目,这些子项目组合在一起,但由于它们在逻辑上是分开的,所以它们保存在同一个 github 存储库中。所以我的项目目录结构如下。 . ├── project1 ├── project2 ├── project3 ├── project4 ├── Jenkinsfile ├── README.md ├── requirements.txt

我有一个构建所有项目的詹金斯构建。它启动 pytest 以运行所有测试。我可以看到它正在运行所有的测试和coverage.xml 是为所有项目创建的。

我想创建 cobertura 来检查覆盖率报告。在我的 jenkins 构建脚本中,我首先运行 pytest 命令,然后将 coverage.xml 重命名为特定于项目的名称,例如project1_coverage.xml

最后,我的詹金斯文件中有以下步骤。

```

它创建了 4 个报告,但它是其中一个文件或第一个文件的唯一报告报告。如何让 cobertura 报告所有 coverage.xml 文件中的数据。

非常感谢。

0 投票
1 回答
896 浏览

python-3.x - 使用 pytest 运行 trace.py

我试图trace.py在运行时使用pytest. 我知道它pytest有自己的覆盖插件pytest-cov,但限制(每行执行的次数不可用)不允许我现在使用它。同样对于coverage.py

我正在尝试这个命令: python3.4 -m trace -c -m -C . pytest test_script.py

test_script.py

输出是:

trace.py显然在其参数中需要一个文件,而不是另一个模块。如何修改此命令以trace.py使用pytest

编辑:我能够找到一种方法来完成这项工作

nikhilh$ python3.4 -m trace -c -m -C . <pytest_script_absolute_path> test_script.py

0 投票
1 回答
3314 浏览

python - Python:ImportError:没有名为 _pluggy 的模块

使用pytestImportError: No module named _pluggy运行测试时出现错误。

然后我尝试使用pip install pluggy. 它安装pluggy==0.6.0成功,但仍然给出错误。

版本列表(来自运行pip freeze | grep pytest

  • pytest==3.3.1
  • pytest-cov==2.5.1
  • pytest-元数据==1.5.0
  • pytest-runner==3.0
  • 插件==0.6.0
  • Python 2.7.12

下面显示的是堆栈跟踪

在 virtualenv 中运行时测试成功运行。在非 virtualenv 环境中可能导致此错误的可能原因是什么?

0 投票
0 回答
602 浏览

pytest - 在循环中运行时,不会为每一行调用 Pytest

从文件中读取一行后,我试图在循环中执行以下 pytest 函数

File1.txt 内容:

Pytest 只执行一次而不是两次,尽管文件中有两行

O/p 即将通过,尽管有两行要测试

0 投票
1 回答
2266 浏览

python - 为什么代码覆盖率不是 100%?pytest-cov

为什么我没有得到 100% 的代码覆盖率?!

所有方法都经过测试...

代码覆盖率是如何计算的?

代码

测试

报告

0 投票
2 回答
5416 浏览

python - 无法从 requirements.txt 安装 pytest

我正在pip3为我的 python 项目安装模块。我的requirements.txt样子是这样的:

我显然已经pytest添加了我的要求,但是当我运行pip3 install -r requirements.txt它时找不到pytest并显示以下异常:

当我手动执行 apip3 install pytest然后运行我的需求文件时,它工作正常。

为什么 pytest 不从安装requirements.txt

0 投票
1 回答
147 浏览

python - 如果从未在测试中直接调用函数,是否可以制作 pytest 报告?

例子

现在您可以通过以下方式获得 100% 的测试覆盖率

但也许有人想foo_a成为p % 2 == 0

问题

分支覆盖会对此有所了解,但我也想知道一个函数是否从未被测试“直接”调用(例如main示例中的 is),而只是间接调用(例如foo_a示例中)。

pytest可以做到这一点吗?