1. 程式人生 > 資訊 >Epic 遊戲喜加一:免費領取清版射擊動作遊戲惡魔彈珠檯《DEMON'S TILT》

Epic 遊戲喜加一:免費領取清版射擊動作遊戲惡魔彈珠檯《DEMON'S TILT》

在以往的基於unittest測試框架中,測試用例是人為開發的以.py的指令碼形式存在的,對應檔案中的測試資料;但是在測試平臺中,測試用例資料是儲存在資料庫中,

譬如你有10組資料,那麼得到10個test case,用純手工的方式寫那麼多個test_成員函式在測試平臺中是不現實的,這樣也就失去了平臺的意義。

我們的思路是:

1.開發一個繼承unittest的測試demo類(TestCase),類中有一個demo測試用例。

2.利用setattr來自動為已有的TestCase類新增成員函式。

3.為了使這個方法湊效,需要用類的static method來生成decorate類的成員函式,並使該函式返回一個test函式物件出去。

4.在某個地方註冊這個新增test成員函式的呼叫(只需要在實際執行前就可以,可以放在模組中自動執行亦可以手動呼叫)

class Test(unittest.TestCase):
 
    def setUp(self):
        print("start")
 
    def demo(self, request_data):
        #測試用例demo
        #一些測試步驟
 
    @staticmethod
    def getTestFunc(data):
        def func(self):
            self.demo(data)
        return func
 
    def tearDown(self):
        print("end")
 
 
# 根據測試資料動態新增測試函式
def __generate_testcases(data_list):
    for fun in dir(Test):
        if 'test_case_' in fun:
            delattr(Test, fun)
    for data in data_list:
        setattr(Test, "test_case_%s" % (data["case_name"]), Test.getTestFunc(data))