python - 如何在 Python 多模块的覆盖范围内排除目录
问题描述
我的项目的目录结构如下所示
ProjectRoot
- Module1
src/
tests/
- Module2
src/
tests/
...
我想从根目录运行所有测试并计算覆盖率。这是我正在使用的命令
python -m coverage run --branch -m unittest **/tests/test*
在这里,我想排除某些目录。我怎样才能做到这一点?
我尝试了一种方法,在该方法中创建.coveragerc
并添加了要排除的模块
...
omit =
Module2/*
...
并将此文件作为命令提供
python -m coverage run --rcfile=.coveragerc --branch -m unittest **/tests/test*
但它仍然试图拿起 Module2 进行测试。
我错过了什么?
解决方案
我只是在我的情况下尝试过,最终这会有所帮助,这是我当前的项目(三个模块):
[report]
exclude_lines =
pragma: no cover
include =
../toolbox/*.py
../geometry_finder/*.py
../position_optimiser/*.py
[html]
directory = c:\tmp\Report
我现在尝试了以下方法:
[report]
exclude_lines =
pragma: no cover
include =
../.
omit =
../toolbox/*.py
[html]
directory = c:\tmp\Report
...我没有看到工具箱的覆盖范围。因此,我无法真正确认。代码开始使用:
coverage run --branch .\unittest_package.py
coverage html
推荐阅读
- ios - 从 firebase 获取的图像在将它们添加到 tableViewCells 的过程中重复?
- php - PHP:通过 CLI 运行 cronjob 时,MySQLi 查询返回 false 和 null 错误,但如果通过 Web 服务器调用脚本则有效
- javascript - 当这是不同的范围时,如何从对撞机方法调用类中的函数?
- bash - 识别进程是否被 bash 中的信号杀死
- android - 如何永久禁用汽车模式?
- python - 相当于 SQL 的 Pandas 不存在子查询
- ruby-on-rails - Rails active_storage 与 rails api
- ruby-on-rails - JSON 负载中嵌套资源的不允许参数
- python - 如何在 scatter_update 中启用梯度流?
- javascript - 我怎样才能使这个动作在反应工作?