我想使用NUnit测试ASP.NET应用程序,但从NUnit GUI运行时,似乎WebConfigurationManager.ConnectionStrings集合为空.
你能告诉我如何初始化这个集合(可能在[TestFixture]的[SetUp]函数中)吗?我应该复制Web.config吗?
谢谢!
NUnit测试所在的.config文件比这里建议的其他帖子稍微复杂一些.在NUnit GUI项目/编辑对话框中有此设置.默认值都取决于您创建NUnit项目文件的方式.
当您打开NUnit GUI并选择文件/打开然后选择.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中打开"项目/编辑"对话框,并检查是否有两个Configurations Debug&Release以匹配.Net项目.完成此操作后,您可以选择Debug Configuration并将ApplicationBase bin\Debug\
设置为并将配置文件名设置为MyTests.dll.config
.对Release版本配置执行相同的操作,然后离开.
如果您的单元测试程序集名为Company.Component.Tests.dll,那么只需确保Company.Component.Tests.dll.config存在正确的连接字符串.
此外,将连接提供程序类与配置分离可能是个好主意,这样您就可以灵活地执行持久性(即:从*.config切换到其他内容)并更容易进行测试.
另请参阅 " NUnit如何查找配置文件 "