问题描述:在做自动化接口测试时,pytest收集测试用例时,提示:TypeError: 'NoneType' object is not iterable。

原因分析:可能是由于在参数化过程中,传入了None。

排查步骤:

1、检查函数返回是否为None,该函在读取CSV文件后,返回一个列表,里面元素为字典。

在测试用例目录下新建一个测试文件test.py,打印函数返回,函数返回正常,排除函数问题。

2、在测试用例里面,添加判断,条件为真再开始查找用例,实际结果为假,再次检查函数。

    login_data = CsvToList().csvToList("login.csv")

    if login_data:

3、寻找外部救援,经过多次调试,发现是函数打开文件时,路径有问题

改进前路径:

filePath = os.path.join(r'../data', filename)

改进后路径:

data_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), r'../data'))
filePath = os.path.join(data_dir, filename)

总结:尽量使用绝对路径打开文件。

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐