我正在使用 VS2008 中的内置测试框架,我希望能够编写一个测试来确保所有预期的 web.config 设置都已定义,这样如果不小心删除或更改了我的测试套件将检测到它,而不必在运行时场景中进行测试。我该如何设置?
我不想设置我的 web.config 的模型,因为我不想维护两个版本,这将使我的测试无论如何都无效,因为我真的试图捕捉项目的 web.config 是正确。
有什么建议、替代方案、提示吗?
解决方案:我最终使用了预构建中建议的副本并进行了一次更改。在复制时,我将 web.config 重命名为 app.config,以便测试项目会自动选择它。
我也尝试按照建议拆分配置文件,但我遇到的问题是当测试项目运行时,它实际上没有用完 bin 目录(将配置文件设置为“Content”类型将复制到),而是复制到一个预先定义的结果目录。我不知道如何让它将那些额外的文件复制到这个结果目录,这样配置文件就永远找不到了。
最佳答案
我正在使用预构建事件将工作 web.config 复制到您的测试项目目录。
将测试项目的预构建事件的命令行设置为这样的字符串:
copy $(SolutionDir)\YourWebAppDir\web.config $(ProjectDir) /y
之后,您的测试将始终使用实际的 web.config 版本运行。
我认为如果您使用 configSource
属性,您只需将它设置为您的网络应用程序的 web.config 和测试项目的 app.config 中的相同路径,这样就没有必要使用构建事件。
抱歉,我还不能发表评论。
关于asp.net - 如何测试是否已定义所有预期的 web.config 设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1561663/