我有一個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。請忽略奇怪的測試。目前的錯誤處理存在問題。
對不起,我會編輯代碼。 someArg是我在那裏的另一個論點,但我只是讓一些Arg假裝做某事。它實際上並不是那裏的代碼。我將函數和類的名稱更改爲通用術語,以避免出現許多可能混淆的單獨函數。我想在'testPass()'中設置'self.error',並在調用'testFail()'時返回它,通過調用'errorHandle'可以看到'self.error'的新值。我知道這是做不到的方式,但我把代碼放在試圖解釋我在做什麼。謝謝 – chrissygormley 2010-05-26 14:31:32
@chrissy,測試方法沒有可用的返回值,當在'unittest'框架內調用時,所以你所說的從「testWhatever」方法「返回」某種東西的願望簡直是不可行的。 (在你當前的編輯中,仍然有太多的「僞代碼不可能工作」,以便嘗試猜測「返回」是否意味着與「return」不同的東西,對不起)。 – 2010-05-26 14:54:25
對不起,基本上我試圖得到這個工作,如果第一次測試失敗了,測試的其餘部分也會自動失敗。因爲如果第一個出現錯誤,他們不應該通過。但在系統中,由於系統中的文件出錯,第一個測試可能會失敗,而其他測試可能會失敗。有沒有辦法做到這一點?謝謝 – chrissygormley 2010-05-26 15:06:50