机智的西瓜啊 2024-10-21 21:53 采纳率: 0%
浏览 125

使用@pytest.mark.parametrize报错AttributeError: 'str' object has no attribute 'isascii'

代码如下:

img


报错如下:

img


排查思路:
代码是没有问题的,之前封装PO模式的数据读取解析比较复杂我以为是代码问题,但打印下来数据没有问题,为了进一步确认,写了这个简单的小demo。发现还是有问题,所以推断是环境出了问题。
环境:python 3.6.6、 jdk1.8、 pytest7.0.1(之前用的是pytest3.8.0,为了兼容allure环境后面卸载了,安装了7.0.1,后来装回了3.8.0,报了另一个错误。)

  • 写回答

2条回答 默认 最新

  • 无疆76 2024-10-21 21:54
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    根据你提供的错误信息 AttributeError: 'str' object has no attribute 'isascii',问题似乎是在 allure_pytest 的某个地方尝试访问字符串对象的 isascii 属性时出现的。但实际上,isascii 是 Python 内置的字符串方法,用于检查字符串中的所有字符是否都是 ASCII 字符。错误提示表明可能有一些地方使用了非字符串对象调用了 isascii 方法。

    问题可能出在以下几个方面:

    1. Python 版本问题:虽然你提到使用的是 Python 3.6.6,但某些库可能不支持这个版本或与该版本存在兼容性问题。你可以尝试升级到更高版本的 Python(例如 Python 3.8 或更高版本)来解决问题。
    2. 库版本问题:可能是 allure_pytest 的某个版本与你的代码或 Python 版本不兼容。尝试更新或回退到不同的 allure_pytest 版本可能会解决问题。
    3. 环境问题:你的环境中可能存在多个版本的 Python 或库冲突。确保你的环境是干净的,并且所有库都是为当前 Python 版本安装的。

    针对这个问题,你可以尝试以下步骤来解决问题:

    1. 更新 Python 和库:首先尝试更新 Python 到最新版本(如果可能的话),并更新所有相关的库(包括 allure_pytestpytest)。
    2. 创建干净的环境:使用虚拟环境(如 virtualenvconda)创建一个新的环境,并在其中安装必要的库和依赖项。这样可以避免环境中的冲突和兼容性问题。
    3. 简化代码:你的代码看起来没有直接的问题,但为了确认问题是否与特定的测试框架或库有关,可以尝试简化代码并只使用基本的 pytest 功能进行测试,看是否还会出现同样的错误。
    4. 查看堆栈跟踪:查看错误堆栈跟踪以获取更多关于错误发生位置的信息。这可能会帮助你定位问题所在的具体位置。

    如果以上步骤无法解决问题,可能需要更深入地调查你的环境和代码,以确定问题的根本原因。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月21日