2016-05-30 131 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函數中調用它,則所有測試方法最後都會調用清理函數。

如果你在一個測試方法中調用它,只有這個方法調用清理函數。