python - Travis 上的 Python 子流程覆盖
问题描述
我看过几篇关于这个主题的文章,但似乎没有一篇对我有用。
案子
一个Python包unittest
,带有基于. 一切都在本地正常工作,所有测试都执行并通过,计算所有测试的覆盖率,包括使用.pytest
pytest-cov
coverage
subprocess.check_output
- 项目:github.com/barseghyanartur/valuta
- Travis 生成的覆盖率报告:travis-ci.org/github/barseghyanartur/valuta/jobs/771949032
- 本地生成的覆盖率报告:gist.github.com/barseghyanartur/061a7b88747e3af40c9e862abc0e49bb
问题
不知何故,在 Travis 方面,没有为 CLI 测试计算覆盖率。无论我做什么,无论我在何处以及多少次包含coverage.pth
或sitecustomize.py
(在此处阅读更多信息),都不包括 CLI 的覆盖范围。
显而易见的问题
我究竟做错了什么?
解决方案
作为对解决它所做的工作的回顾(对于可能需要答案的人),问题出在我的配置上tox
。
之前(虽然测试通过,但效果不佳)
[testenv]
# Some other config above this line
commands =
pytest
之后(我真正做到了 100% 覆盖)
[testenv]
# Some other config above this line
commands =
coverage erase
pip install -e .
pytest
这pip install -e .
显然是这里的关键。
推荐阅读
- angular - NWL NX Angular Jest 测试报告“无法找到描述”错误
- c# - ASP.NET Core api 项目 3.1 在 IIS 上发布
- python-3.x - Tkinter 列表框不会返回选定的元素
- safari - 为什么 Command-N 不能在 Safari 中打开新窗口?它会打开一个新选项卡
- sql-server - SQL Server 项目发布到 Docker 托管实例 - SSDT 和 DefaultDataPath
- react-native - RNPickerSelect 因项目的正确输入而崩溃
- python - 10分时如何破局?
- docker - 多对接开发环境的最佳实践
- python - 将 3d 数组存储在 pandas 数据框列中
- aws-secrets-manager - 无法使用 Secrets Manager 密钥注册 AWS Batch 作业定义