Initial commit.
This commit is contained in:
46
test/conftest.py
Normal file
46
test/conftest.py
Normal file
@ -0,0 +1,46 @@
|
||||
"""
|
||||
Pytest 配置文件
|
||||
"""
|
||||
|
||||
import pytest
|
||||
import multiprocessing
|
||||
|
||||
|
||||
def pytest_configure(config):
|
||||
"""配置 pytest"""
|
||||
# 设置多进程启动方法(fork 在 Linux 上更快,spawn 在 Windows/macOS 上更稳定)
|
||||
try:
|
||||
multiprocessing.set_start_method("fork", force=True)
|
||||
except RuntimeError:
|
||||
# 如果已经设置过,忽略错误
|
||||
pass
|
||||
|
||||
|
||||
@pytest.fixture(scope="function", autouse=True)
|
||||
def reset_shared_pool():
|
||||
"""
|
||||
每个测试函数执行前清理共享池
|
||||
|
||||
这是一个自动使用的 fixture,确保每个测试都在干净的环境中运行
|
||||
"""
|
||||
from mpsp.mpsp import MultiProcessingSharedPool
|
||||
|
||||
pool = MultiProcessingSharedPool()
|
||||
pool.clear()
|
||||
|
||||
yield
|
||||
|
||||
# 测试结束后也清理
|
||||
pool.clear()
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def shared_pool():
|
||||
"""
|
||||
提供共享池实例的 fixture
|
||||
|
||||
在整个测试会话中复用同一个实例(单例模式)
|
||||
"""
|
||||
from mpsp.mpsp import MultiProcessingSharedPool
|
||||
|
||||
return MultiProcessingSharedPool()
|
||||
Reference in New Issue
Block a user