我们可以在pytest中有多个addfinalizer

时间:2018-11-15 07:19:08

标签: python testing pytest

我想在pytest中添加多个终结器函数,因此可以添加多个addfinalizer。如果是,那么执行的顺序是什么。 任何帮助将不胜感激。

谢谢

1 个答案:

答案 0 :(得分:3)

您可以添加多个终结器。来自pytest docs

  

在测试结束后,通过调用其代码,yield和addfinalizer方法的工作方式相似,但是addfinalizer在yield上有两个主要区别:

     
      
  1. 可以注册多个终结器功能。
  2.   
  3. 无论灯具设置代码是否引发异常,都将始终调用终结器。这样就可以方便地正确关闭由灯具创建的所有资源,即使其中之一无法创建/获取也不成功:
  4.   

这个问题与this other stackoverflow question非常相似,其中讨论了顺序问题(并提供了更好的解决方案)。