![Python服务端测试开发实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/984/52841984/b_52841984.jpg)
上QQ阅读APP看书,第一时间看更新
1.7 conftest.py实战
在一个测试模块中编写fixture函数只能解决一个测试模块的问题,而在实际的环境中测试模块与测试模块中的fixture需要共享起来,很明显按照测试模块的思路很难解决这个问题。可以使用conftest.py使所有模块都共享fixture的特性。需要特别注意的是,虽然conftest.py是一个测试模块,但是不能导入,因此最好将conftest.py放在项目的根目录下,具体目录结构如图1-29所示。
![](https://epubservercos.yuewen.com/B5D6AE/31397731707980106/epubprivate/OEBPS/Images/Figure-P44_5516.jpg?sign=1739051854-Z8Zz6p1tGIEBvSB6O5hJHvuoNdbbr8JZ-0-088382965ccc97aefb9c2f374b027e43)
图1-29 conftest.py在项目中的目录结构
下面把之前编写的fixture函数分离到conftest.py文件,conftest.py文件的内容如下。
![](https://epubservercos.yuewen.com/B5D6AE/31397731707980106/epubprivate/OEBPS/Images/Figure-P44_30886.jpg?sign=1739051854-7JvpTTeOIOup9nq1l11dPS7AEJy4VEOK-0-80b92a690c8919765d99e7bd3cec4c66)
把fixture函数代码分离到conftest.py文件后,再次执行测试模块,命令如下。
python3 -m pytest -v --driver Chrome test_fixture_ui.py test_fixture_ api.py
执行结果如图1-30所示。
![](https://epubservercos.yuewen.com/B5D6AE/31397731707980106/epubprivate/OEBPS/Images/Figure-P45_5681.jpg?sign=1739051854-PzCgI0oCzHUJ25oJIyWLxn5Awd2aPbMt-0-7eec9e7551bb19bd2e546d2ac1625c4b)
图1-30 fixture函数代码分离到conftest.py文件后的执行结果