如何在NUnit中初始化ConnectionStrings集合

Ale*_*yev 5 asp.net nunit automated-tests web-config

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

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

谢谢!

Mar*_*own 9

NUnit .config文件位置取决于您创建NUnit项目文件的方式

NUnit测试所在的.config文件比这里建议的其他帖子稍微复杂一些.在NUnit GUI项目/编辑对话框中有此设置.默认值都取决于您创建NUnit项目文件的方式.

当您打开NUnit GUI并选择文件/打开然后选择.dll文件时,将设置一个新项目,其中包含用于查找与同一目录中的dll同名的配置文件的设置.因此,如果你加载\bin\debug\MyTests.dllNUnit \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中打开"项目/编辑"对话框,并检查是否有两个Configurations Debug&Release以匹配.Net项目.完成此操作后,您可以选择Debug Configuration并将ApplicationBase bin\Debug\设置为并将配置文件名设置为MyTests.dll.config.对Release版本配置执行相同的操作,然后离开.


Rin*_*lin 7

如果您的单元测试程序集名为Company.Component.Tests.dll,那么只需确保Company.Component.Tests.dll.config存在正确的连接字符串.

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

另请参阅 " NUnit如何查找配置文件 "