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

2024-10-04 09:30:37 发布

您现在位置:Python中文网/ 问答频道 /正文

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

第一次运行测试时:
1返回错误(以下)
2测试失败
三。已调用服务器(现在服务器正在运行)

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

错误: 发生异常:RuntimeError 无法启动process server

@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()

Tags: pathpy服务器trueserverpytestport错误
1条回答
网友
1楼 · 发布于 2024-10-04 09:30:37

解决方案:

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()

相关问题 更多 >