我正在對一個試圖打開一個新文件的函數進行一些單元測試,但是如果這個文件已經存在就會失敗。當功能成功地運行時,創建新文件,所以我要讓每個試運行後刪除它,但它似乎並不奏效:python單元測試os.remove文件系統失敗
class MyObject_Initialisation(unittest.TestCase):
def setUp(self):
if os.path.exists(TEMPORARY_FILE_NAME):
try:
os.remove(TEMPORARY_FILE_NAME)
except WindowsError:
#TODO: can't figure out how to fix this...
#time.sleep(3)
#self.setUp() #this just loops forever
pass
def tearDown(self):
self.setUp()
有什麼想法?拋出的Windows錯誤似乎表明該文件正在使用中......可能是測試在並行線程中運行?
我在別處看過,在單元測試中使用文件系統是'壞習慣',但真的是?當然,有一種解決方法不會破壞文件系統?
實際上,我之前找到的.dispose()方法並未可靠地釋放文件系統資源。臨時文件框架似乎提供了一個整潔的解決方案(雖然涉及到放棄創建和整理我的臨時文件,或者知道如何正確釋放資源) – hwjp 2010-06-24 14:16:14
無知是幸福的。如果它工作,它的工作;) – Oli 2010-06-24 14:33:12