asp.net - 如何测试是否已定义所有预期的 web.config 设置?

标签 asp.net visual-studio-2008 unit-testing testing

我正在使用 VS2008 中的内置测试框架,我希望能够编写一个测试来确保所有预期的 web.config 设置都已定义,这样如果不小心删除或更改了我的测试套件将检测到它,而不必在运行时场景中进行测试。我该如何设置?

我不想设置我的 web.config 的模型,因为我不想维护两个版本,这将使我的测试无论如何都无效,因为我真的试图捕捉项目的 web.config 是正确。

有什么建议、替代方案、提示吗?

解决方案:我最终使用了预构建中建议的副本并进行了一次更改。在复制时,我将 web.config 重命名为 app.config,以便测试项目会自动选择它。

我也尝试按照建议拆分配置文件,但我遇到的问题是当测试项目运行时,它实际上没有用完 bin 目录(将配置文件设置为“Content”类型将复制到),而是复制到一个预先定义的结果目录。我不知道如何让它将那些额外的文件复制到这个结果目录,这样配置文件就永远找不到了。

最佳答案

我正在使用预构建事件将工作 web.config 复制到您的测试项目目录。

将测试项目的预构建事件的命令行设置为这样的字符串:

copy $(SolutionDir)\YourWebAppDir\web.config $(ProjectDir) /y

之后,您的测试将始终使用实际的 web.config 版本运行。

评论pcampbell's answer :

我认为如果您使用 configSource 属性,您只需将它设置为您的网络应用程序的 web.config 和测试项目的 app.config 中的相同路径,这样就没有必要使用构建事件。

抱歉,我还不能发表评论。

关于asp.net - 如何测试是否已定义所有预期的 web.config 设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1561663/

相关文章:

asp.net - 如何在 Visual Studio 中的 Web 应用程序之间共享公共(public) Web 资源?

javascript - 从 javascript 调用 HttpHandler

sql - 有没有办法在 Visual Studio 中将 SQL 脚本导入 MDF 数据库?

visual-studio-2008 - 为什么所有 GUI 元素的高度和宽度突然变成原来的两倍?

php - 如何使用 PHAR 在 MAMP 中配置 PHPUnit

android - 使用位置预配置 Android 模拟器?

javascript - 我如何在 TinyMCE 中允许自闭标签?

c# - HttpRequest 与 HttpWebRequest

使用 Javascript 的 ASP.NET GridView 行数

c++ - 如何在 MFC 应用程序中使用 gmock