最近,内德·巴切尔德在his talk at PyCon 2016期间注意到:
如果你正在使用
unittest
编写测试,那么一定要使用addCleanup
,它比tearDown
要好得多。
到目前为止,我还没有使用过addCleanup()
,并且习惯了使用setUp()
/tearDown()
这对方法来测试“设置”和“拆卸”阶段。
为什么要切换到addCleanup()
而不是tearDown()
最近在Python unittest with Robert Collins播客中也对此进行了讨论。
发布于 2016-05-30 21:53:22
即使setUp失败,也会调用
清理项(与tearDown不同)
addCleanup
可用于注册多个函数,因此您可以对要清理的每个资源使用单独的函数。这将使您的代码更具可重用性/模块化。
发布于 2016-05-30 21:54:26
即使其中一个方法失败,addCleanup()
方法也会运行,即使setUp()
失败也会运行。您还应该考虑使用pytest。
发布于 2017-05-01 07:43:48
addCleanup
的另一个好处是,它的工作方式完全符合您的预期。
例如,如果您在setUp
函数中调用它,那么所有测试方法最终都将调用cleanup函数。
如果在测试方法中调用它,则只有此方法调用cleanup函数。
https://stackoverflow.com/questions/37534021
复制