1.base_data.yaml文件如下:
init_admin_user:
username: "wintest"
password: "123456"
init_sql:
insert_delete_user:
- "INSERT INTO user(username, password, role, sex, telephone, address) VALUES('测试test', '123456', '1', '1', '13488888888', '北京市海淀区')"
- "DELETE FROM user WHERE username = '测试test'"
delete_register_user: "DELETE FROM jiyancloud_prod.jiyan_member WHERE phone_number='13800000000'"
update_user_telephone: "UPDATE user SET telephone = '13500010004' WHERE id = 4"
2.加载yaml文件的代码
def get_data(yaml_file_name):
try:
data_file_path = os.path.join(BASE_PATH, "data", yaml_file_name)
yaml_data = data.load_yaml(data_file_path)
except Exception as ex:
pytest.skip(str(ex))
else:
return yaml_data
base_data = get_data("base_data.yml")
解释一下:get_data 函数尝试从指定路径加载YAML文件。如果在尝试加载过程中发生任何异常,except Exception as ex 会捕获这个异常。此时,pytest.skip(str(ex)) 将被调用,它会立即停止当前测试用例并标记为跳过,原因是异常的字符串表示(str(ex))。这样做的目的是在加载YAML文件失败时,防止测试继续执行并产生错误结果,而是以更友好的方式告知测试被跳过,原因是加载数据时遇到了问题。如果文件成功加载,函数会返回解析后的YAML数据
加载结果: yaml_data 是一个字典,其内容是从名为 data.load_yaml 的函数加载的YAML格式的数据。根据提供的YAML片段,字典结构如下:
yaml_data = {
"init_admin_user": {
"username": "wintest",
"password": "123456",
},
"init_sql": {
"insert_delete_user": [
"INSERT INTO user(username, password, role, sex, telephone, address) VALUES('测试test', '123456', '1', '1', '13488888888', '北京市海淀区')",
"DELETE FROM user WHERE username = '测试test'",
],
"delete_register_user": "DELETE FROM jiyancloud_prod.jiyan_member WHERE phone_number='13800000000'",
"update_user_telephone": "UPDATE user SET telephone = '13500010004' WHERE id = 4",
},
}