我想使用NUnit测试ASP.NET应用程序,但从NUnit GUI运行时,似乎WebConfigurationManager.ConnectionStrings集合为空。
你能告诉我如何初始化这个集合(可能在[TestFixture]的[SetUp]函数中)吗?我应该复制Web.config吗?
谢谢!
答案 0 :(得分:9)
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&发布以匹配您的.Net项目。完成此操作后,您可以选择Debug Configuration并将ApplicationBase设置为bin\Debug\
,并将配置文件名设置为MyTests.dll.config
。对发布配置执行相同的操作,然后离开。
答案 1 :(得分:7)
如果您的单元测试程序集名为Company.Component.Tests.dll,那么只需确保Company.Component.Tests.dll.config存在正确的连接字符串。
此外,将连接提供程序类与配置分离可能是一个好主意,这样您就可以灵活地进行持久化(即:从* .config切换到其他类型)并更容易进行测试。
答案 2 :(得分:1)
您可以将app.config用于库(我假设您的测试所在的位置)并将它们放在那里。