运行pytest报错-UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xb0 in position 26: illegal multiby

如果你在运行pytest时遇到了报错,可能会感到有些困惑和烦恼。

在我的最近学习测试工作中,我遇到了这个错误:UnicodeDecodeError: 'gbk' codec can't decode byte 0xb0 in position 26: illegal multibyte sequence。

但是,通过查阅资料和实践,我最终找到了解决方法。

在本篇文章中,我将分享我的经验,讲解为什么会出现这个错误以及如何有效地解决它。

我希望这篇真情实感的文章可以帮助你更好地理解和使用pytest,并且不再被类似的报错所困扰。

错误如下:

D:\pythonproject\AndroidUIauto\Test_App>pytest
Traceback (most recent call last):
  File "d:\python\python37\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "d:\python\python37\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "D:\Python\Python37\Scripts\pytest.exe\__main__.py", line 9, in <module>
  File "d:\python\python37\lib\site-packages\_pytest\config\__init__.py", line 60, in main
    config = _prepareconfig(args, plugins)
  File "d:\python\python37\lib\site-packages\_pytest\config\__init__.py", line 195, in _prepareconfig
    pluginmanager=pluginmanager, args=args
  File "d:\python\python37\lib\site-packages\pluggy\hooks.py", line 289, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "d:\python\python37\lib\site-packages\pluggy\manager.py", line 68, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "d:\python\python37\lib\site-packages\pluggy\manager.py", line 62, in <lambda>
    firstresult=hook.spec.opts.get("firstresult") if hook.spec else False,
  File "d:\python\python37\lib\site-packages\pluggy\callers.py", line 203, in _multicall
    gen.send(outcome)
  File "d:\python\python37\lib\site-packages\_pytest\helpconfig.py", line 93, in pytest_cmdline_parse
    config = outcome.get_result()
  File "d:\python\python37\lib\site-packages\pluggy\callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "d:\python\python37\lib\site-packages\pluggy\callers.py", line 187, in _multicall
    res = hook_impl.function(*args)
  File "d:\python\python37\lib\site-packages\_pytest\config\__init__.py", line 654, in pytest_cmdline_parse
    self.parse(args)
  File "d:\python\python37\lib\site-packages\_pytest\config\__init__.py", line 871, in parse
    self._preparse(args, addopts=addopts)
  File "d:\python\python37\lib\site-packages\_pytest\config\__init__.py", line 804, in _preparse
    self._initini(args)
  File "d:\python\python37\lib\site-packages\_pytest\config\__init__.py", line 727, in _initini
    config=self,
  File "d:\python\python37\lib\site-packages\_pytest\config\findpaths.py", line 122, in determine_setup
    rootdir, inifile, inicfg = getcfg([ancestor], config=config)
  File "d:\python\python37\lib\site-packages\_pytest\config\findpaths.py", line 35, in getcfg
    iniconfig = py.iniconfig.IniConfig(p)
  File "d:\python\python37\lib\site-packages\py\_vendored_packages\iniconfig.py", line 54, in __init__
    tokens = self._parse(iter(f))
  File "d:\python\python37\lib\site-packages\py\_vendored_packages\iniconfig.py", line 82, in _parse
    for lineno, line in enumerate(line_iter):
UnicodeDecodeError: 'gbk' codec can't decode byte 0xb0 in position 26: illegal multibyte sequence

解决办法:
更改pytest.ini 文件编码方式为GBK,再次运行不在报错。

 原因:
目前未知,不知道具体为什么要这样更改,先记录以便后续跟进。


最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

在我的QQ技术交流群里(技术交流和资源共享,广告勿扰)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`pytest.ini` 文件是一个 pytest 测试框架用来自定义配置的文件,它通常包含测试运行的一些选项和规则。如果遇到 `UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd1 in position 33: invalid continuation byte` 这样的错误,这通常意味着你在 `.ini` 文件中使用了非 UTF-8 编码的文本,而 pytest 预期的是 UTF-8 格式。 1. 首先,检查 `pytest.ini` 的编码设置。确保文件开头有一个明确的声明,比如 `# coding=utf-8` 或 `# -*- coding: utf-8 -*-`,告诉 Python 文件是以 UTF-8 编码的。 2. 如果文件没有明确指定编码,尝试用文本编辑器将文件另存为 UTF-8 编码格式,通常可以在文件菜单中的“另存为”选项中选择。 3. 清空文件,然后重新创建,确保从头开始编写配置,这样可以避免引入可能存在问题的旧字符。 4. 检查文件内容是否有非ASCII字符,特别是那些在UTF-8编码范围外的字符,如果有的话,可能需要替换或调整这些字符。 5. 如果是在 Windows 上,有时候文件可能会被自动设置为其他编码,可以尝试右键点击文件,选择“属性”,检查“编码”部分是否为 UTF-8。 6. 如果以上步骤都无法解决问题,可能是外部工具(如版本控制系统)导致的问题,确保这些工具也正确配置了文件编码。 相关问题: 1. 如何在Python中设置文件的编码? 2. 为何要在pytest.ini中明确指定编码? 3. Windows系统下如何查看和更改文件的编码?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值