2014-03-05 33 views
0

這個問題可能很愚蠢,但我沒有找到答案。如何通過django測試函數添加/更改變量

我想添加一個測試函數到一個TestCase類來檢查測試的完成。例如,網址被測試,表單被測試et.al.因此,我想有一個變量來保存每個測試的記錄。如果網址已經過測試,那麼VARIABLE [「urls」] = True。

不幸的是,它看起來像所有的變量都在每個測試函數中重置。在URL測試中記錄的消息VARIABLE [「urls」]不能進行到另一個測試。有沒有辦法在所有測試函數中擁有一個全局變量?

下面是修改後的工作代碼

class Test(TestCase): 
    test = {} 
    to_be_test = ["urls","ajax","forms","templates"] 

    def test_urls(self): 
     ... 
     self.test['urls'] = True 

    def test_ajax(self): 
     ... 
     self.test['ajax'] = True 

    def test_z_completion(self): 
     for t in self.to_be_test: 
      if not t in self.test: 
       print "Warning: %s test is missing!" % t 

預期的結果應該是:

Warning: forms test is missing! 
Warning: templates test is missing! 
+1

你能描述爲什麼你需要有這些全局變量嗎?什麼是用例? – alecxe

+0

是的,看我上面的示例代碼。這將確保我測試了to_be_test列表中的所有內容。 – user3179510

+0

通常的做法是收集代碼覆蓋率統計信息。 – alecxe

回答

2

怎麼樣一類級別的屬性?

import unittest 

class FakeTest(unittest.TestCase): 
    cl_att = [] 

    def test_a1(self): 

     self.assert_(True) 
     self.cl_att.append('a1') 
     print "cl_att:", self.cl_att 

    def test_a2(self): 

     self.assert_(True) 
     self.cl_att.append('a2') 
     print "cl_att:", self.cl_att 


if __name__ == "__main__": 
    unittest.main() 
+0

工作,謝謝。 – user3179510

相關問題