threading
- это способ выполнить такую задачу. А именно, вы запускаете dev_appserver в потоке или в основном потоке и, пока он выполняется, запускаете и собираете результаты с помощью модуля покрытия, а затем завершаете процесс python dev_appserver в другом потоке, и вы получите результаты из покрытия.
Вот пример фрагмента, который запускает dev_appserver.py
в потоке, затем ждет 10 секунд, а затем убивает процесс python. Вы можете изменить метод end таким образом, чтобы вместо ожидания в течение 10 секунд он ждал несколько секунд (чтобы запустить процесс python), а затем начал выполнять тестирование покрытия и после того, как это было сделано, убить appserver и закончить покрытие.
import threading
import subprocess
import time
hold_process = []
def start():
print 'In the start process'
proc = subprocess.Popen(['/usr/bin/python','dev_appserver.py','yourapp'])
hold_process.append(proc)
def end():
time.sleep(10)
proc = hold_process.pop(0)
print 'Killing the appserver process'
proc.kill()
t = threading.Thread(name='startprocess',target=start)
t.deamon = True
w = threading.Thread(name='endprocess',target=end)
t.start()
w.start()
t.join()
w.join()