我已经像通常使用项目根目录中的App.config文件一样设置了一个测试项目。然后我为不同类型的测试设置文件夹,例如ServiceTests等。
我已经在该文件夹中的文件中获得了第一组测试,并尝试引用App.config中的appSettings部分,但没有得到任何回报。我尝试了以下方法:
var setting = ConfigurationManager.AppSettings["MySetting"];
以及更广泛的范围:
var settings = ConfigurationManager.GetSection("appSettings") as AppSettingsSection;
在两种情况下,我都返回null。有人有建议吗?
答案 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)