2011-08-24 35 views
0

我想在Python 2.3中編寫unittests。我有一切工作接受類級別的setUp和tearDown函數。我試圖在網上尋找,但我無法找到一種方法來在python 2.3單元測試案例中定義這些。如何在Python 2.3中使用setUpClass&tearDownClass編寫unittest

因此,是否有可能在python 2.3測試用例中使用setUpClass()& tearDownClass()?如果是的話,我該如何去做呢?

+4

歷史註釋:在Python 2.3發佈7月29日,2003年 – miku

+0

你嘗試過這麼遠嗎?我不知道它在2.3中是否有所不同,但您只需在unittest.TestCase繼承的類中定義setUp函數。 –

+0

@miku我意識到,我必須使用python 2.3,因爲與舊系統的兼容性。如果這取決於我,我會在2.7 – Danish

回答

0

嘗試使用nose或其他兼容python 2.3的runner; Python 2.3跑步者不知道這個方法(setUpClass/tearDownClass)。

是Python 2.3裝飾就像你應該做手工(沒有語法糖)的函數:

class MyTest(unittest.TestCase): 
    def setUpClass(cls): ... 
    setUpClass = classmethod(setUpClass) 
0

根據Python 2.3 standard library documentation,unittest.TestCase子類化應該以與更新版本的語言相同的方式工作。

import unittest 

class MyTest(unittest.TestCase): 

    def setUp(self): 
     'Do stuff to set up before each test' 

    def tearDown(self): 
     'Do stuff to tear down after each test' 

如果您想要完成更具體的事情,您能描述一下嗎?

+0

我正在尋找實現setUpClass()和tearDownClass(),可以使用@classmethod 2.7定義,如此處所述http://docs.python.org/library/unittest.html#unittest.TestCase – Danish

+0

'@ classmethod' is在2.3中不可用,並且無法在2.3的文檔中找到如何執行'setUpClass()'和'tearDownClass()'的問題 – Danish

+0

我剛剛閱讀2.3的單元測試源代碼,看起來好像你想要爲了能夠利用setUpClass和tearDownClass功能,您必須編寫自己的測試加載器或運行器來實現這些掛鉤。話雖如此,單元測試圖書館自2.3以來已大幅增長,而它所面臨的問題可能無法獲得最佳的投資回報率。 – BenTrofatter

相關問題