새 파일을 열려고 시도하는 함수에 대해 단위 테스트를 수행하고 있지만 파일이 이미 있으면 실패합니다. 함수가 성공적으로 실행되면, 새 파일이 생성, 그래서 모든 테스트 실행 후 삭제를했지만, 제대로 동작하지 않는 것입니다 :파이썬 단위 테스트 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()
어떤 생각? Throw 된 Windows Error가 파일이 사용 중임을 암시하는 것 같습니다 ... 테스트가 병렬 스레드에서 실행될 수 있습니까?
단위 테스트에서 파일 시스템을 사용하는 것은 '나쁜 습관'이라고 읽었지만 은 실제로입니까? 분명히이 문제를 해결할 수있는 방법이 있습니다.
실제로 이전에 발견 한 .dispose() 메서드는 파일 시스템 리소스를 안정적으로 릴리스하지 않았습니다. 임시 파일 프레임 워크는 수동으로 내 임시 파일을 만들고 정리하는 것을 포기하거나 적절하게 리소스를 해제하는 방법을 알고있는 경우에도 더 좋은 솔루션을 제공하는 것 같습니다. – hwjp
무식함은 행복합니다. 작동하는 경우 작동합니다;) – Oli