pytest触发警告时如何查看引发警告的变量的完整精确值?
解决方案
- 原因说明:你遇到的浮点数值截断不是pytest的输出逻辑导致的,是numpy数组默认打印精度仅为2位的默认配置导致的,只要调整numpy的打印参数即可输出完整精度的数值。
- 方法1:临时通过命令行注入配置,无需修改代码
直接运行如下命令替代原有的pytest命令:
其中python -c "import numpy as np; np.set_printoptions(precision=16, suppress=False); import pytest; pytest.main(['-W', 'error', '*.py'])"precision参数可以根据你需要保留的小数位数调整,suppress=False可以保证极小/极大值不会被强制转换成科学计数法,如有需要可以改为True。 - 方法2:全局适配测试目录的打印配置
在你的测试文件根目录新建conftest.py文件,添加如下内容:
之后正常运行import numpy as np import pytest def pytest_sessionstart(session): np.set_printoptions(precision=16, suppress=False)pytest -W error *.py命令,所有numpy数组都会输出完整精度的数值。
内容的提问来源于stack exchange,提问作者f. c.
相关产品推荐
相关产品推荐

