python - 文件同名时缺少 Python 代码覆盖率
问题描述
我正在使用 pytest 和 pytest-cov 进行代码覆盖。
我的项目如下所示。有两个模块services
和workers
.
python_tmp
├── tests
│ └── some_test.py
├── services
│ └── utils.py
└── workers
└── utils.py
他们两个都有utils.py
里面。但内容不同。
服务/utils.py
def function_1():
return 1
和工人/utils.py
def function_2():
return 2
在tests/some_test.py
您可以找到测试用例。
import pytest
import services.utils as t1
import workers.utils as t2
def test_function_1():
res = t1.function_1()
assert res == 1
def test_function_2():
res = t2.function_2()
assert res == 2
如果我运行测试python -m pytest -v tests --cov=services --cov=workers --cov-report=xml:coverage.xml
,它将生成以下报告。但是您可以看到只有一个utils.py
被报告,并且您不知道它属于哪个模块的模棱两可。
...
<sources>
<source>/Users/xxxxxxx/workspace/tmp/python_tmp/services</source>
<source>/Users/xxxxxxx/workspace/tmp/python_tmp/workers</source>
</sources>
<packages>
<package branch-rate="0" complexity="0" line-rate="1" name=".">
<classes>
<class branch-rate="0" complexity="0" filename="utils.py" line-rate="1" name="utils.py">
<methods/>
<lines>
<line hits="1" number="1"/>
<line hits="1" number="2"/>
</lines>
</class>
</classes>
</package>
</packages>
</coverage>
如何解决?谢谢你的时间!
解决方案
推荐阅读
- c++ - 无界背包与经典背包比较
- mongodb - MongoDB Atlas - 了解 Atlas GUI 和下载的日志文件之间的时间戳差异
- javascript - 函数不会运行
- url - 您是否会因在 CNAME 或 A rec 中输入错误而意外造成大量停机?
- javascript - 检测事件气泡中的元素
- amazon-web-services - 无法以正确的形式在 Hive 表中加载数据
- python - 这个变量不会改变
- vba - 如何绘制和格式化一条线?
- kubernetes - K8:无法使用 nginx 反向代理连接 Pod
- javascript - 将带有 '=' 的字符串转换为 JSON 格式