@pytest.fixture()
1、fixture命名不要以test开头
2、fixture是有返回值得,没有返回值默认为None
3、默念作用域是function
4、可以写在conftest.py,也不可以不写
测试文件.py
class Testb(object): datas = ['zhangsan1','lisi1'] @pytest.mark.parametrize('data', datas) def test0002(self,data,writeb): print("传参:",data) return data class Testa(object): datas = ['zhangsan','lisi'] @pytest.mark.parametrize('data', datas) def test0002(self,data,writeb): print("传参:",data) return data
作用域:module,.py只执行一次“开始”
conftest.py
@pytest.fixture(scope="module") def writeb(): print("开始") yield # print("从testd拿值",datas) print("结束")
打印结果
作用域:class,每个类只执行一次“开始”,一共有2个类,所以执行2次
conftest.py
@pytest.fixture(scope="class") def writeb(): print("开始") yield # print("从testd拿值",datas) print("结束")
打印结果
作用域:session,所有案例执行只执行一次,“开始”
conftest.py
@pytest.fixture(scope="session") def writeb(): print("开始") yield # print("从testd拿值",datas) print("结束")
打印结果
作用域:function,每个案例都执行一次,一共4条案例,执行4次“开始”
conftest.py
@pytest.fixture(scope="function") def writeb(): print("开始") yield # print("从testd拿值",datas) print("结束")
打印结果