2010-05-26 41 views
0

我有一個Python腳本,我試圖設置一個變量,以便如果第一次測試失敗,那麼其餘部分將設置爲失敗。我到目前爲止的腳本是:如何爲所有測試返回變量以使用Unittest

class Tests(unittest.TestCase): 

    def result(self): 
     ....This function does something[ignore]...... 
     someArg = 0 


    def testPass(self): 

     try: 
      self.result() 
     except suds.WebFault, e: 
      assert False 
     except Exception, e: 
      pass 
     finally: 
      if someArg == 0: 
       assert True 
      else: 
       global error 
       error = False 
       assert False 

    def testFail(self): 

     try: 
      self.result() 
     except suds.WebFault, e: 
      assert False 
     except Exception, e: 
      pass 
     finally: 
      if someArg == 0 or 'error' in globals(): 
       assert False 
      else: 
       assert True 


class Get(Tests): 

    def runTest(self): 

     self.testPass() 


class GetFail(Tests): 

    def runTest(self): 


     self.errorHandle() 
     self.testFail() 

if __name__ == '__main__': 
    unittest.main() 

我想讓self.error在第一次測試失敗時設置爲False。我知道它正在進行另一項測試,但我希望有人能夠幫助我找到解決這個問題的方法。

謝謝

PS。請忽略奇怪的測試。目前的錯誤處理存在問題。

回答

1

我很難理解你的代碼,所以讓我們指出一些我理解的東西(因爲它看起來像你可能認爲事情與它們的不同)。

呼叫

self.errorHandle() 

你重複執行工作作爲一個沒有的操作:errorHandle方法只是做了return,呼叫者忽略返回值,這樣,淨,「什麼也沒發生」和你最好避免調用該方法。當你調用一個只返回一些東西而忽略返回值的方法時,你希望發生什麼?

不知道你在哪裏得到someArg價值 - 我看到它在兩種方法但從未設置測試。這可能是指在某個級別的僞代碼...?

不知道該def function(self)(即result function...)應該傳達的語法 - 它的意思是某種僞代碼,我敢肯定,但究竟是什麼?

如果你可以澄清這些問題 - 特別是關於errorHandle方法的第一個問題以及對它的調用 - 可能對我們來說更容易提供幫助。

+0

對不起,我會編輯代碼。 someArg是我在那裏的另一個論點,但我只是讓一些Arg假裝做某事。它實際上並不是那裏的代碼。我將函數和類的名稱更改爲通用術語,以避免出現許多可能混淆的單獨函數。我想在'testPass()'中設置'self.error',並在調用'testFail()'時返回它,通過調用'errorHandle'可以看到'self.error'的新值。我知道這是做不到的方式,但我把代碼放在試圖解釋我在做什麼。謝謝 – chrissygormley 2010-05-26 14:31:32

+0

@chrissy,測試方法沒有可用的返回值,當在'unittest'框架內調用時,所以你所說的從「testWhatever」方法「返回」某種東西的願望簡直是不可行的。 (在你當前的編輯中,仍然有太多的「僞代碼不可能工作」,以便嘗試猜測「返回」是否意味着與「return」不同的東西,對不起)。 – 2010-05-26 14:54:25

+0

對不起,基本上我試圖得到這個工作,如果第一次測試失敗了,測試的其餘部分也會自動失敗。因爲如果第一個出現錯誤,他們不應該通過。但在系統中,由於系統中的文件出錯,第一個測試可能會失敗,而其他測試可能會失敗。有沒有辦法做到這一點?謝謝 – chrissygormley 2010-05-26 15:06:50

相關問題