2016-05-30 72 views
19

近日,斯内德尔德期间his talk at PyCon 2016注意:addCleanUp VS拆卸

如果使用unittest写你的测试,肯定要用到 addCleanup,它比tearDown好得多。

到现在为止,我从来没有用过addCleanUp()和习惯setUp() /tearDown()对试验方法“设置”和“推倒”阶段。

为什么要切换到addCleanUp()而不是tearDown()


最近也在Python unittest with Robert Collins podcast中讨论过。

+1

我注意到了这个话题,并想知道同样的事情。 – PascalVKooten

回答

24

addCleanup doc string

清理的项目被称为即使安装失败(不同于拆除)

addCleanup可以用来注册多个功能,这样你就可以使用 独立的功能,用于每个你希望清理的资源。这可以让你的代码更加可重用/模块化。

4

addCleanup()即使其中一个失败,方法也会运行,即使setUp()失败,方法也会运行。你也应该考虑使用pytest

2

addCleanup的另一件好事就是它的功能正如您所期望的那样。

例如,如果您在setUp函数中调用它,则所有测试方法最后都会调用清理函数。

如果你在一个测试方法中调用它,只有这个方法调用清理函数。