【问题标题】:How to initialize ConnectionStrings collection in NUnit如何在 NUnit 中初始化 ConnectionStrings 集合
【发布时间】:2008-09-30 11:02:59
【问题描述】:

我想使用 NUnit 测试 ASP.NET 应用程序,但是从 NUnit GUI 运行时 WebConfigurationManager.ConnectionStrings 集合似乎是空的。

你能告诉我如何初始化这个集合吗(可能在 [TestFixture] 的 [SetUp] 函数中)?我应该在那里复制 Web.config 吗?

谢谢!

【问题讨论】:

    标签: asp.net nunit web-config automated-tests


    【解决方案1】:

    NUnit .config 文件位置取决于您如何创建 NUnit 项目文件

    用于 NUnit 测试的 .config 文件所在的位置比此处建议的其他帖子要复杂一些。在 NUnit GUI Project/Edit 对话框中有这方面的设置。默认值都取决于您创建 NUnit 项目文件的方式。

    当您打开 NUnit GUI 并选择 File/Open 然后选择一个 .dll 文件时,将设置一个新项目,并设置为在同一目录中查找与 dll 同名的配置文件。因此,如果您加载了\bin\debug\MyTests.dll,NUnit 默认会查找\bin\Debug\MyTests.dll.config。唯一的问题是,当您创建发布版本时,您需要创建一个单独的 NUnit 项目。

    如果您通过选择 File/NewProject 创建了 NUnit 项目,则默认设置是查找与 NUnit 项目同名的配置文件。所以如果你创建了\MyNUnitProject.nunit,NUnit 默认会查找\MyNUnitProject.config

    您很可能已经使用 Visual Studio 创建了一个 \App.config 文件并将其粘贴到您的测试 dll 的源文件夹中。当您构建您的测试项目时,这将根据您选择的配置被复制到\bin\Debug\MyTests.dll.config\bin\Release\MyTests.dll.config。如果你直接在 NUnit 中打开了 MyTest.dll,这将正常工作,但是如果你创建了一个新的 NUnit 项目,你就会遇到麻烦,因为默认情况下它不会查找这些文件。

    要解决此问题,您需要在 NUnit GUI 中打开“项目/编辑”对话框,并检查您是否有两个配置调试和发布以匹配您的 .Net 项目。完成此操作后,您可以选择调试配置并将 ApplicationBase 设置为 bin\Debug\ 并将配置文件名称设置为 MyTests.dll.config。对 Release 配置执行相同操作,然后离开。

    【讨论】:

      【解决方案2】:

      如果您有名为 Company.Component.Tests.dll 的单元测试程序集,则只需确保 Company.Component.Tests.dll.config 具有正确的连接字符串即可。

      此外,将连接提供程序类与配置分离可能是个好主意,这样您就可以灵活地进行持久性(即:从 *.config 切换到其他内容)并简化测试。

      还可以查看“How NUnit Finds Config Files

      【讨论】:

      • 当我点击该链接:“NUnit 如何查找配置文件”时,我从 Web 服务器收到一个错误:“建立数据库连接时出错”。来自这个问题的上下文有点讽刺/有趣=P
      【解决方案3】:

      您可以将 app.config 用于库(我假设您的测试在其中)并将它们放在那里。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多