用途:在实现或重构 TestFx 测试、生命周期代码、辅助方法、共享状态声明及相关生产路径时,先做并发的并行安全预检,范围限于本次变更及其可达冲突,不做仓库级审计或推测性加固。\n\n主要能力:复用仓库既有分析规范,读取 .github/copilot-instructions.md、所属项目配置、BannedSymbols.txt(如存在)及 .github/workflows/shared/parallel-safety-audit-shared.md,按共享评分标准执行至第 3 步,包括程序集作用域规则、调度语义、A-D 分类、严重度与置信度、culture/ExecutionContext 区分、声明对账;并参考 .github/agents/parallel-safety-reviewer.agent.md 的证据与部分分析契约。\n\n使用方式:编辑前依据第 0 步确定有效测试引擎、目标框架、程序集调度范围、worker 与配置来源,覆盖构造函数、初始化、清理、释放、fixture、链接源及受影响测试可达的生产辅助方法。在工作笔记中记录资源覆盖矩阵(资源与边界、生命周期、测试/生产读写者、可达其他测试、声明键/模式/位置),不创建新的仓库规划文件。经生产辅助方法回溯到所属测试程序集内每个可达调用方。声称存在竞态前需给出具体冲突观察者、调度交错和可观察错误结果;未确立冲突时不因存在变更就加锁。依据 C、D 分类选择消除或最窄正确共享读写声明,复用现有键与共享常量,方法级与类级放置须结合整个生命周期论证,不得破坏程序集级安全。\n\n适用场景:全局观察者需回溯活动、指标、日志与事件监听器到每个可观察生产者,优先按测试身份过滤;继承环境状态需枚举实际读取的环境值(含 TF_BUILD 等 CI 门),显式安排存在与缺失值,并在 finally 中还原;会合与清理使用确定性的 started/ready/release 信号而非 sleep,保留原始 worker 任务句柄,在 finally 中释放阻塞 worker、请求取消并等待其终止,再释放门/监听器、还原共享状态。\n\n限制:不授权发布、无关修复或更改程序集调度。缺失证据记为部分完成而非干净通过。若任何行未知,不得移除排除。不保证竞态不可能仅凭串行过滤运行或压力测试通过。仓库示例仅为分析参考,非修补请求,复用前需在 HEAD 重新核对。
testfx-parallel-safety-preflight
编程与开发
更新于 10-16 09:32