pytest里面默认读取conftest.py里面的配置
conftest.py配置需要注意以下点:
conftest.py配置脚本名称是固定的,不能改名称
conftest.py与运行的用例要在同一个pakage下,并且有init.py文件
不需要import导入 conftest.py,pytest用例会自动查找
在conftest.py所在目录及其子目录中生效。
ps:如果module级别的,在py文件中第一个未调用,第二个调用,module会在第二个调用时执行
通过yield实现teardown:
@pytest.fixture(scope="module")
def open():
print("打开浏览器,并且打开百度首页")
yield
print("执行teardown!")
print("最后关闭浏览器")
1.如果其中一个用例出现异常,不影响yield后面的teardown执行,运行结果互不影响,并且在用例全部执行完之后,会呼唤teardown的内容
2.如果在setup就异常了,那么是不会去执行yield后面的teardown内容了
3.yield也可以配合with语句使用,如:
@pytest.fixture(scope="module")
def smtp():
with smtplib.SMTP("smtp.gmail.com") as smtp:
yield smtp # provide the fixture value