利用python簡單實現unittest
阿新 • • 發佈:2020-09-23
python3的eval方法
eval() 函式用來執行一個字串表示式,並返回表示式的值
# 例如
a = [1,2,3,4]
b = "a"
print(eval(b))
# 執行結果
[1, 2, 3, 4]
利用eval方法實現unittest單元測試
實現只執行test開頭的case
先建一個demo
class Demo: def demo_01(self): print("這是demo_01") def test_demo(self): print("這是test_demo") def demo_03(self): print("這是demo_03") class manage: dm = Demo() func_list=dir(dm) for func in func_list: if func.startswith("test"): eval("dm.%s()"%func)
# 執行結果
這是test_demo
實現 seUpClass、tearDownClass功能
class Demo: def setUpClass(self): print("這是setUpClass") def tearDownClass(self): print("這是tearDownClass") def demo_01(self): print("這是demo_01") def test_demo(self): print("這是test_demo") def demo_03(self): print("這是demo_03") class manage: dm = Demo() func_list = dir(dm) teardownclass =None for data_prepare in func_list: if data_prepare == "setUpClass": eval("dm.%s()" % data_prepare) if data_prepare == "tearDownClass": teardownclass = data_prepare for func in func_list: if func.startswith("test"): eval("dm.%s()" % func) if teardownclass !=None: eval("dm.%s()"%teardownclass)
# 執行結果
這是setUpClass
這是test_demo
這是tearDownClass
實現setUp、tearDown功能
class Demo: def setUpClass(self): print("這是setUpClass") def tearDownClass(self): print("這是tearDownClass") def setUp(self): print("這是setUp") def tearDown(self): print("這是tearDown") def demo_01(self): print("這是demo_01") def test_demo(self): print("這是test_demo") def demo_03(self): print("這是demo_03") class manage: dm = Demo() func_list = dir(dm) teardownclass = None setup = None teardown = None for data_prepare in func_list: if data_prepare == "setUpClass": eval("dm.%s()" % data_prepare) if data_prepare == "tearDownClass": teardownclass = data_prepare if data_prepare == "setUp": setup = data_prepare if data_prepare == "tearDown": teardown = data_prepare for func in func_list: if func.startswith("test"): if setup != None: eval("dm.%s()" % setup) eval("dm.%s()" % func) if teardown != None: eval("dm.%s()" % teardown) if teardownclass !=None: eval("dm.%s()"%teardownclass)
# 執行結果
這是setUpClass
這是setUp
這是test_demo
這是tearDown
這是tearDownClass