2014-12-04 69 views
0

一個共同的設置功能,所以我有一個劇本test.py具有測試

from nose.tools import with_setup 

class Test: 
    @with_setup(setup_func, teardown_func) 
    def test(self): 
     print "Hello World" 

我能有setup_func(),並在同一目錄中的初始化的.py定義爲「測試teardown_func() py」爲。

基本上,目標是對一堆測試用例進行通用設置和拆卸。

回答

0

關於setup_functeardown_func沒有什麼不可思議的。當然,你可以通過從任何模塊導入它們,如果它調用init.py__init__。我建議你把它放在其他一些模塊中,比如test_setup.py,因爲你可能不希望在測試模塊的包級別上有這些定義,並且「明確優於暗含」哲學將被強制執行。

ADDED:但是,這裏有一個更大的問題:with_setup僅適用於測試功能,不適用於測試方法或子類內部。正如您所寫的,在您的代碼中,您的setup函數將不會被調用,無論它在何處指定,請參閱here

如果您打算將您的測試作爲類方法,那麼您將不得不依賴unittestsetUptearDown方法。如果你願意,你可以從一個特殊的設置類繼承你的測試類,並重新使用這個相同的特殊類來進行不同的測試。

+0

哇我從來不知道我可以從__init__.py導入到其他模塊..是真的嗎? – user2921139 2014-12-05 01:22:12

+0

爲什麼我不能在網上找到證實這一點的東西? – user2921139 2014-12-05 15:21:19