首页 > 解决方案 > 无法从 App.config 检索值

问题描述

我已经建立了一个测试项目,就像我通常在项目的根目录中使用 App.config 文件一样。然后我为不同类型的测试设置文件夹,例如 ServiceTests 等。

我在该文件夹中的文件中进行了第一组测试,并尝试引用 App.config 中的 appSettings 部分,但没有得到任何回复。我尝试了以下方法:

var setting = ConfigurationManager.AppSettings["MySetting"];

以及更广泛的:

var settings = ConfigurationManager.GetSection("appSettings") as AppSettingsSection;

在这两种情况下,我都会返回 null。有没有人有什么建议?

标签: c#unit-testingintegration-testingapp-configconfigurationmanager

解决方案


配置管理器不读取 DLL 的 app.config,只读取正在运行的可执行文件(在本例中为测试运行程序)。因此,您的测试程序集的 app.config 没有被找到/使用。

您必须手动查找和加载 XML 并自行解析。

或者,为了对单元测试更加友好,将系统配置隐藏在您自己的界面/服务后面,使用主应用程序中的 app.config 设置并在单元测试中使用测试特定设置对其进行模拟


推荐阅读