Pytest使用parametrize使用中文入参,控制台打印乱码解决方法
时间: 2023-12-29 22:06:36 浏览: 98
python中文乱码的解决方法
5星 · 资源好评率100%
在 `parametrize` 中使用中文入参时,可能会出现控制台打印乱码的情况。这是因为控制台默认使用的编码可能不同于你的脚本中使用的编码。
为了解决这个问题,可以在脚本的开头添加以下代码:
```python
import sys
import io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
```
这段代码将控制台的输出编码设置为 `utf-8`,即使你在 `parametrize` 中使用中文入参,控制台也能正确地打印中文字符。
如果你使用的是 pytest-capturelog 插件,还需要添加以下代码:
```python
sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8')
```
这段代码将错误输出的编码也设置为 `utf-8`,确保错误信息也能正确地打印。
注意:如果你的脚本中还有其他输出操作,可能也需要对它们进行编码设置。
阅读全文