5

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

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

谢谢!

4

3 回答 3

9

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.nunitNUnit ,则\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. 对发布配置执行相同的操作,然后离开。

于 2008-11-05T18:20:59.533 回答
7

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

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

另请查看“ NUnit 如何查找配置文件

于 2008-09-30T11:22:05.737 回答
1

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

于 2008-09-30T11:07:16.147 回答