在单元测试中使用WebConfigurationManager.OpenWebConfiguration应该会失败但不会失败

时间:2016-03-11 09:52:42

标签: unit-testing mstest

在测试方法中访问配置属性时,由MSTest运行的某些单元测试失败。我们有一个使用WebConfigurationManager.OpenWebConfiguration(" /")的配置阅读器。在单元测试中,它预计会引发异常,然后我们回退到ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)。我不太理解,但过去一直有效。

但是,OpenWebConfiguration不仅可以工作,而且可以从另一个项目返回web.config。我几乎可以理解这是否从测试项目中返回了web.config,但它只是来自解决方案中的另一个项目。

这个问题似乎只发生在我身上,而不是其他开发人员使用相同的解决方案,所以我真的要求我的机器上的设置可能导致这个问题。我意识到有解决这个问题的工作,但我只是想知道为什么这对我而不是其他人失败了。感谢

1 个答案:

答案 0 :(得分:1)

此问题是由我如何设置本地IIS引起的。我在那里的一个网站有它的物理路径指向包含我的单元测试保持加载的web.config的文件夹。所以对我来说,WebConfigurationManager.OpenWebConfiguration(" /")加载了我在IIS中唯一的网站的web.config,而不是像其他在本地IIS中没有网站的开发者那样失败。

所以为了解决这个问题,我从IIS中删除了网站。我意识到这不是一个很好的解决办法,但这就是我如何让它为我所需要的工作。