2012-05-02 68 views
-2

我遇到我的單元測試的一個問題,我不知道爲什麼,我gotting下面的堆棧:單元測試蟒蛇「__init __()到底需要2個參數(1給出)」

Traceback (most recent call last): 
    File "novaapiclient_tests.py", line 11, in test_create_server 
    nova = novaapiclient.NovaAPIClient() 
TypeError: __init__() takes exactly 2 arguments (1 given) 

按照我的測試代碼:

class TestFunction(unittest.TestCase): 

    def setUp(self): 
     self.nova = novaapiclient.NovaAPIClient() 

    def test_create_server(self): 
     self.setUp() 
     lsbf = self.nova.lst_of_servers(self.nova.listServers()) 
     image = "3f9e6696-2ed2-4e06-ae16-c828062addbe" 
     flavor = "m1.tiny" 
     name = "testing_unit" 
     self.nova.createServer(image, flavor, name) 
     time.sleep(60) 
     lsaf = self.nova.lst_of_servers(self.nova.listServers()) 
     if(len(lsbf) < len(lsaf)): 
      assertTrue(True) 
     else: 
      assertTrue(False) 


    def delete_server(self): 
     self.setUp() 
     serv_id = "13e0c3de-d736-47ec-bc22-3a794aa3e2a9" 
     self.nova.deleteServer(serv_id) 
     ls = self.nova.lst_of_servers(self.nova.listServers()) 
     j = 0 
     fin = False 
     while(j < 3 and not fin): 
      time.sleep(75) 
      for i in range(len(ls)): 
       if(serv_id == str(ls[i])): 
        assertTrue(False) 
        break 

       assertTrue(True) 
       fin = True    
       break 
      j += 1 

我試圖創建一個init方法和削減方法的「自我」,但我繼續打印錯誤。

+1

我們可以看到'novaapiclient'嗎?這是帶'__init __()'的類,它需要更多的參數。 –

+3

正如sr2222指出的那樣,您在NovaAPIClient初始化程序中缺少一個參數。另外,您不需要手動調用self.setUp()。如果使用測試運行器運行測試(就像運行'unittest.main()'),setUp類將自動調用。 –

+0

@MarkHildreth事實上,這不會導致'setUp()'被調用兩次,可能會造成很糟糕的後果嗎? –

回答

5

novaapiclient.NovaAPIClient構造函數需要接收一個參數,但是你沒有傳遞任何參數。

在你的this question你沒有通過一個參數novaapiclient.NovaAPIClient,所以我假設你需要做類似的事情。

+0

它已經工作,對愚蠢的問題抱歉。 – guisantogui

相關問題