前言
前面实现了一个基础的读取yaml文件内容,当成用例去执行。虽然入门简单,但需要扩展功能,比如在 yaml 用例实现参数化,就不好扩展了。
因为它并不是一个真正的pytest的模块和用例,无法被钩子函数探测到。所以这篇会把yaml文件动态生成一个py模块,把yaml文件的数据,动态生成一个函数。
pytest 用例收集
pytest 用例收集默认是按test_*.py 模块收集,并且test_开头的函数当成用例来执行的
# test_sample.py
def test_demo():
print("hello")
def test_login():
print("world")
如果我们把上面的代码转成 yaml 文件
test_demo:
print: hello
test_login:
print: hello
在yaml文件中写两个key,对应函数名称,对应的值是执行python的对应函数。
整体思路是把yaml文件转成一个py模块,把yaml里面的键值对,转成函数和待执行的内容。
(题外话:看到这里,有人要 mmp 了,好好代码写到 py 文件不行,非