无法从App.config检索值

时间:2018-08-16 13:23:08

标签: c# unit-testing integration-testing app-config configurationmanager

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

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

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

以及更广泛的范围:

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

在两种情况下,我都返回null。有人有建议吗?

3 个答案:

答案 0 :(得分:1)

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

您将不得不手动查找并加载XML并自行解析。

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

答案 1 :(得分:0)

我发现您的答案似乎here

  

“如果您要进行UNIT TESTING,则需要在UNIT TEST PROJECT项目中复制一份APP.CONFIG”。

同样值得一提的是,有人对同一问题提出了建议,因此您无需重复实际的配置文件:https://stackoverflow.com/a/11535980/2654498

答案 2 :(得分:0)

您是否将Build Action设置为文件?

应将其设置为“无”并复制到输出目录。

enter image description here

此外,在输出文件夹中,您是否有一个名为 .dll.config的文件?