问题标签 [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.
python - Python Coverage 将顶级包名变成句号
我有一个这样的项目:
如果我pytest
这样跑:
然后结果中的顶级包coverage.xml
被命名为.
:
但如果我pytest
这样打电话:
然后顶级包被正确命名ex_secure
:
目前这是一个不错的解决方法,但并不理想。如果我添加更多包,我必须继续枚举它们(否则它们将在覆盖率报告中丢失)。此外,__init__.py
未涵盖使用此机制。
我在这里做错了什么?
更新 1:
如果我直接运行 Python Coverage 而不是 using pytest-cov
,它将按预期工作:
然后:
更新 2:
如果我像最初一样运行 PyTest,然后直接使用 Python Coverage 重新生成 XML 报告,重新生成的报告会得到更正,但数字略有不同:
然后:
python - pytest-cov 不适用于 tox
这是我的tox.ini
配置
当我运行时tox
,我收到此错误
请注意,已安装软件包的列表不包括pytest-cov
and coverage
,即使它们明确包含在 my requirements.txt
and中,也tox.ini
包括该行
直接运行pytest
命令就可以了
如何让pytest-coverage
tox 安装缺少的库?
更新 1
的内容requirements.txt
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
文件或其他方法,以便一行的命中数反映多次执行?
谢谢!
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 文件中的数据。
非常感谢。
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
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 环境中可能导致此错误的可能原因是什么?
pytest - 在循环中运行时,不会为每一行调用 Pytest
从文件中读取一行后,我试图在循环中执行以下 pytest 函数
File1.txt 内容:
Pytest 只执行一次而不是两次,尽管文件中有两行
O/p 即将通过,尽管有两行要测试
python - 为什么代码覆盖率不是 100%?pytest-cov
为什么我没有得到 100% 的代码覆盖率?!
所有方法都经过测试...
代码覆盖率是如何计算的?
代码
测试
报告
python - 无法从 requirements.txt 安装 pytest
我正在pip3
为我的 python 项目安装模块。我的requirements.txt
样子是这样的:
我显然已经pytest
添加了我的要求,但是当我运行pip3 install -r requirements.txt
它时找不到pytest
并显示以下异常:
当我手动执行 apip3 install pytest
然后运行我的需求文件时,它工作正常。
为什么 pytest 不从安装requirements.txt
?
python - 如果从未在测试中直接调用函数,是否可以制作 pytest 报告?
例子
现在您可以通过以下方式获得 100% 的测试覆盖率
但也许有人想foo_a
成为p % 2 == 0
。
问题
分支覆盖会对此有所了解,但我也想知道一个函数是否从未被测试“直接”调用(例如main
示例中的 is),而只是间接调用(例如foo_a
示例中)。
pytest可以做到这一点吗?