我想使用 NUnit 测试 ASP.NET 应用程序,但是从 NUnit GUI 运行时 WebConfigurationManager.ConnectionStrings 集合似乎是空的。
你能告诉我如何初始化这个集合(可能在 [TestFixture] 的 [SetUp] 函数中)吗?我应该在那里复制 Web.config 吗?
谢谢!
我想使用 NUnit 测试 ASP.NET 应用程序,但是从 NUnit GUI 运行时 WebConfigurationManager.ConnectionStrings 集合似乎是空的。
你能告诉我如何初始化这个集合(可能在 [TestFixture] 的 [SetUp] 函数中)吗?我应该在那里复制 Web.config 吗?
谢谢!
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 中打开 Project/Edit 对话框,并检查您是否有两个 Configurations Debug & Release 来匹配您的 .Net 项目。完成此操作后,您可以选择调试配置并将 ApplicationBasebin\Debug\
设置为并将配置文件名称设置为MyTests.dll.config
. 对发布配置执行相同的操作,然后离开。
如果您有名为 Company.Component.Tests.dll 的单元测试程序集,则只需确保 Company.Component.Tests.dll.config 具有正确的连接字符串即可。
此外,将连接提供程序类与配置分离可能是一个好主意,这样您就可以在持久性方面具有灵活性(即:从 *.config 切换到其他内容)并更容易测试。
另请查看“ NUnit 如何查找配置文件”
您可以将 app.config 用于库(我假设您的测试在其中)并将它们放在那里。