在pytest测试开始时创建服务器

问题描述 投票:0回答:1

我想在测试开始之前创建服务器,然后在所有测试运行之后终止它。行为描述如下。

我第一次运行测试:1.返回错误(如下)2.测试失败3.调用服务器(现在服务器正在运行)

第二次运行测试:1.返回相同的错误(如下)2.测试通过3.服务器关闭

错误:发生异常:RuntimeError无法启动进程服务器

@pytest.fixture(autouse=True, scope="session")
def start_server(xprocess):
    port = 8000
    server_path = py.path.local(__file__).dirpath("service.py")
    xprocess.ensure("server", lambda cwd: ("started", [sys.executable, server_path, port]))
    yield
    xprocess.getinfo("server").terminate()
python server pytest fixtures
1个回答
0
投票

解决方案:

def server(host, port):
    # definition of your server

@pytest.fixture(autouse=True, scope="session")
def start_server():
    p = multiprocessing.Process(target=server, args=(host, port))
    p.start()
    yield
    p.terminate()
© www.soinside.com 2019 - 2024. All rights reserved.