2011-07-28 5 views
0

현재 (해당 응용 프로그램과 함께) 파일을 여는 단위 테스트를 작성한 다음 프로그램이 닫힐 때까지 테스트 실행을 기다려야합니다.Python Unittest : 프로그램이 닫힐 때까지 열어서 대기하십시오.

def test_HFG(self): 
#.... 
print "please edit this file" 
os.chdir(r'C:\test\a') 
os.startfile("myfile.vdx") 
# here I need a "stop until the program is closed"-function 
#.... 

누구나 내 계획을 (가능한 한 간단하게) 실현하는 방법을 알고 있습니까?

답변

2

: 연관된 응용 프로그램이 가 시작됩니다으로

startfile는() 즉시 반환합니다. 응용 프로그램이 닫힐 때까지 대기 할 수있는 옵션이없고 응용 프로그램의 종료 상태를 검색 할 수있는 방법이 없습니다.

파일을 여는 응용 프로그램의 경로를 알고 있으면 잠깐 기다릴 수있는 subprocess.Popen()을 사용할 수 있습니다.

참조 : http://docs.python.org/library/os.html#os.startfile

http://docs.python.org/library/subprocess.html#subprocess.Popen

0
answer = raw_input("Please Edit this file (done): ") 
if answer == done: 
    blablabla 
else: 
    stop programm or whatever 

그냥

3

os.startfile이다, 물론, 완전히 비 차단 옵션없이하는 것은 기다릴 상상할 수있는, 그는이 완료되면 그가 당신에게 간단한 방법을 보자.

나는 os.startfile 같은 일을 연관된 객체와 파일을 열도록 윈도우 "시작"명령을 호출의 subprocess 모듈을 사용하는 것이 좋습니다,하지만 당신은 완료하는 과정을 기다릴 수 있습니다 것입니다.

예컨대 :

subprocess.call(["start", my_file]) 
1

os.startfile의 문서는 명시 적으로 말한다 :

startfile()가 바로 연결된 응용 프로그램이 실행될으로 반환합니다. 닫습니다 응용 프로그램 대기 할 수있는 옵션 및 할 수있는 방법 검색에 당신을 허용하지

그래서, 나는 그런 subprocess.Popen를 통해 그것을 시작으로, 다른 방법을 사용하는 것이 좋습니다 응용 프로그램의 종료 상태 없다 하위 프로세스가 끝날 때까지 기다리십시오. 워드 프로세서

관련 문제