如何讓python unittest.TestCase的類下的setUp和tearDown只執行一次
阿新 • • 發佈:2018-11-23
轉自:https://www.cnblogs.com/UncleYong/p/7076872.html
知道unittest單元測試框架的朋友應該都知道,
執行繼承了unittest.TestCase的類下每個test開頭的方法(就是用例)時,都會執行setUp和tearDown,如下面的例子所示:
import unittest class TestSetupTeardown(unittest.TestCase): def setUp(self): print('連線資料庫成功...') def tearDown(self): print('關閉資料庫。') def test_a(self): print('test_a') def test_b(self): print('test_b') if __name__ == '__main__': unittest.main()
setUp連線資料庫,tearDown關閉資料庫,這樣反覆執行,無疑是會增加資料庫伺服器資源的損耗,且浪費時間
能不能只執行一次呢?
答案是肯定的,通過裝飾器就可以實現
import unittest class TestSetupTeardown(unittest.TestCase): @classmethod def setUpClass(cls): print('連線資料庫成功...') @classmethod def tearDownClass(cls): print('關閉資料庫。') def test_a(self): print('test_a') def test_b(self): print('test_b') if __name__ == '__main__': unittest.main()