如何批量读取testSplited文件夹下多份含测试用例的JSON文件?
解决方案:加载多个JSON测试文件并整合参数
我来帮你调整代码,让它能一次性加载testSplited文件夹下的四个指定JSON文件,并且把所有文件里的测试参数整合到一起。这里是修改后的完整代码:
import json import os def load_test_params(): # 定义需要加载的JSON文件列表 test_files = ["credit.json", "housingP.json", "mood.json", "churn.json"] # 拼接文件夹路径,用os.path.join适配不同操作系统的路径格式 folder_path = os.path.join(filePath, "testsSplited") all_test_params = [] for file_name in test_files: file_full_path = os.path.join(folder_path, file_name) with open(file_full_path) as json_file: data = json.load(json_file) # 确保当前文件的tests列表非空 assert len(data['tests']) > 0, f"文件{file_name}中的tests列表为空" all_test_params.extend(data['tests']) # 确保最终整合后的测试参数非空 assert len(all_test_params) > 0, "所有加载的文件中没有有效的测试参数" return all_test_params TEST_PARAMS = load_test_params()
代码说明:
- 指定待加载文件:用
test_files列表明确列出需要加载的四个JSON文件名,方便后续维护和修改。 - 路径拼接优化:使用
os.path.join替代手动拼接字符串,避免Windows和Linux/macOS的路径分隔符差异问题。 - 遍历加载与整合:循环遍历每个文件,读取其中的
tests列表,用extend方法把所有测试项合并到一个总列表中。 - 断言增强:不仅检查单个文件的
tests非空,最后还检查总列表是否有内容,提前发现异常情况。 - 可读性提升:拆分路径拼接和文件读取的步骤,让代码逻辑更清晰,便于后续调试。
如果需要动态加载testsSplited文件夹下的所有JSON文件(而不是指定四个),可以用os.listdir结合过滤来实现,比如:
test_files = [f for f in os.listdir(folder_path) if f.endswith('.json')]
内容的提问来源于stack exchange,提问作者snow
相关产品推荐
相关产品推荐

