我正在对一个试图打开一个新文件的函数进行一些单元测试,但是如果这个文件已经存在就会失败。当功能成功地运行时,创建新文件,所以我要让每个试运行后删除它,但它似乎并不奏效: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