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

时间:2019-11-07 14:06:38

标签: python server pytest fixtures

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

我第一次运行测试:
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()

2 个答案:

答案 0 :(得分:0)

解决方案:

/home/kublayconc/composer

答案 1 :(得分:0)

供以后参考,这是pytest-xprocess插件的确切应用。您可以编写如下的简单夹具来启动服务器实例并使它在测试中可用:

webpack@5.6.0