Что делать, когда py.test зависает молча?

Что-то вроде этого:

def runProcess(exe):    
    p = subprocess.Popen(exe, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    while(True):
      retcode = p.poll() #returns None while subprocess is running
      line = p.stdout.readline()
      yield line
      if(retcode is not None):
        break

Обратите внимание, что я перенаправляю stderr в stdout, это может быть не совсем то, что вы хотите, но я также хочу сообщения об ошибках.

Эта функция выводит строку за строкой по мере их поступления (обычно вам придется подождать завершения подпроцесса, чтобы получить результат в целом).

В вашем случае это будет:

for line in runProcess('mysqladmin create test -uroot -pmysqladmin12'.split()):
    print line,
22
задан Jesse W at Z 14 October 2014 в 18:09
поделиться