python – 执行pytest fixtures的顺序是什么?
作者:互联网
对于我正在测试的应用程序,我想创建一个autouse = True fixture,如果他们试图意外地发送电子邮件,那么monkeypatches smtplib.SMTP.connect将失败测试.
但是,在我确实希望测试发送电子邮件的情况下,我想使用不同的夹具来记录这些电子邮件(最有可能的方法是使用pytest-localserver中的smtpserver夹具并使用connect方法修改连接方法以使用它返回的主机/端口)夹具)
当然,只有在另一个灯具(加载为funcarg)之前执行autouse灯具时才能工作.是否有任何具体的订单执行和/或有没有办法保证执行顺序?
解决方法:
控制灯具执行顺序的最简单方法是在后一个灯具中请求前一个灯具.所以要确保b在a之前运行:
@pytest.fixture(autouse=True, scope="function")
def b():
pass
@pytest.fixture(scope="function")
def a(b):
pass
标签:fixtures,python,pytest 来源: https://codeday.me/bug/20190929/1831381.html