diff --git a/UnitTestProject/Program.cs b/UnitTestProject/Program.cs index 0f768067..708646cf 100644 --- a/UnitTestProject/Program.cs +++ b/UnitTestProject/Program.cs @@ -30,9 +30,24 @@ namespace YLErp YLServiceLocator.SetServiceCollection(services); - AppManager.Initialize(YLErp.Enums.SubSystemName.UnitTest, configuration); - - DataCacheManager.UpdateOnce(); + // P0 容错(2026-08-16):初始化段(AppManager.Initialize 内部 InitializePsConfig 读 AppConfig 表、 + // DataCacheManager.UpdateOnce 预热)在测试库不可达时不再让 ModuleInitializer 抛异常连坐全部 903 个 + // 测试——降级为醒目警告,纯内存测试照常可跑;依赖配置/缓存/库的测试将以各自的连接错误失败 + // (与降级前表现一致,只是不再全红归因到"类创建失败")。完全跳过初始化仍用 + // YLErp_UNIT_TEST_SKIP_INITIALIZATION=1。实测触发链:M1→AppManager.Initialize→ConfigDic→ + // ServerVersion.AutoDetect→MySQL 不可达(Program.cs:33,2026-08-16 栈实证)。 + try + { + AppManager.Initialize(YLErp.Enums.SubSystemName.UnitTest, configuration); + DataCacheManager.UpdateOnce(); + } + catch (Exception ex) + { + var warn = $"[UnitTest初始化降级] 初始化段失败(测试库不可达?):{ex.GetType().Name}: {ex.Message}。" + + "纯内存测试继续;依赖配置/缓存/数据库的测试将失败——这是网络问题不是代码问题。"; + Console.WriteLine(warn); + logger.Warn(warn); + } services.AddHttpClient("") .ConfigurePrimaryHttpMessageHandler(messageHandler =>