对于我正在测试的应用程序,我想创建一个 autouse=True
夹具,其中 monkeypatches smtplib.SMTP.connect
如果他们尝试意外发送电子邮件,则测试失败。
但是,在我确实希望测试发送电子邮件的情况下,我想使用不同的夹具来记录这些电子邮件(最有可能通过使用来自 pytest-localserver
的 smtpserver
夹具和 monkeypatching connect
使用该设备返回的主机/端口的方法)
当然,只有在 autouse fixture 在另一个 fixture(作为 funcarg 加载)之前执行时才能工作。是否有执行固定装置的特定顺序和/或是否有保证执行顺序的方法?
原文由 ThiefMaster 发布,翻译遵循 CC BY-SA 4.0 许可协议
控制 fixture 执行顺序的最简单方法是只在后面的 fixture 中请求前一个 fixture。因此,要确保
b
在a
之前运行:有关一般夹具分辨率顺序的详细信息,请参阅 下面 Maxim 的出色回答 或查看 文档。