一尘不染

单元测试项目可以加载目标应用程序的app.config文件吗?

c#

我正在对使用app.config文件加载配置属性的.NET应用程序(.exe)进行单元测试。单元测试应用程序本身没有app.config文件。

当我尝试对使用任何配置属性的方法进行单元测试时,它们返回 null 。我假设这是因为单元测试应用程序不会加载到目标应用程序的app.config中。

有没有一种方法可以覆盖此问题,或者我必须编写脚本将目标app.config的内容复制到本地app.config?

这篇文章有点问这个问题,但是作者实际上是从与我不同的角度看待它。

编辑: 我应该提到,我正在使用VS08 Team System进行单元测试。


阅读 360

收藏
2020-05-19

共1个答案

一尘不染

最简单的方法是.config在单元测试的“部署”部分中添加文件。

为此,请.testrunconfig从“解决方案项目”中打开文件。在“部署”部分中,.config从项目的构建目录(可能是bin\Debug)中添加输出文件。

在运行测试之前,“部署”部分中列出的所有内容都将被复制到测试项目的工作文件夹中,因此与配置相关的代码可以正常运行。

编辑:我忘记添加了,这在所有情况下都无法使用,因此您可能需要包含一个启动脚本,该脚本将输出重命名.config以匹配单元测试的名称。

2020-05-19