Initial commit.

This commit is contained in:
2026-02-21 12:00:47 +08:00
commit cd335c1b3f
14 changed files with 3492 additions and 0 deletions

46
test/conftest.py Normal file
View 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()