如何在NUnit中初始化ConnectionStrings集合

时间:2020-03-06 14:55:02  来源:igfitidea点击:

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

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

谢谢!

解决方案

我们可以将app.config用于库(我假设我们要在其中进行测试)并将它们放在其中。

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

此外,最好将连接提供程序类与配置分离,这样我们就可以在持久性方面保持灵活性(即:从* .config切换到其他内容)并简化测试。

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

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

用于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项目相匹配。完成此操作后,我们可以选择"调试配置",并将" ApplicationBase"设置为" bin \ Debug ",并将"配置文件名"设置为" MyTests.dll.config"。对Release配置执行相同的操作,然后就离开了。