tut*_*uca 5 python bdd tornado
在我正在工作的项目中,我需要使用Behave来覆盖Tornado服务,所以我想在运行每个场景之前启动龙卷风服务的实例.
天真地尝试将循环作为一部分运行之前似乎锁定了执行:
from tornado import ioloop
from tornadoadapter.applications import APPLICATION
def before_all(context):
print "Service running on port 8000"
APPLICATION.listen(8000)
ioloop.IOLoop.instance().start()
Run Code Online (Sandbox Code Playgroud)
所以它可能不是我需要的.
您的 IOLoop 正在主线程中运行,因此它是阻塞的。您可以在单独的线程或进程中执行此操作。
from multiprocessing import Process
from tornado import ioloop
from tornadoadapter.applications import APPLICATION
def run_server():
print "Service running on port 8000"
APPLICATION.listen(8000)
ioloop.IOLoop.instance().start()
def before_all(context):
context.server_thread = Process(target=run_server)
context.server_thread.deamon = True
context.server_thread.start()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
491 次 |
最近记录: |