jqw*_*wha 31 .net asp.net tdd .net-assembly
我正在VS2010中构建一个ASP.NET应用程序.我有许多单独的程序集(类库)和相应的Test项目.
在其中一个类库中,我使用App.config文件来存储设置.程序集本身使用以下代码来检索设置:
string tmp = ConfigurationManager.AppSettings["mySetting"];
Run Code Online (Sandbox Code Playgroud)
问题是,当我尝试在单独的测试项目中创建单元测试时,测试不会获取App.config文件中的设置.如果我将App.config文件复制到Test项目中,它可以正常工作.
如何确保每个程序集使用自己的App.config文件副本.如果我不得不复制配置文件,它会引入问题.还有一个问题,因为可能有多个配置文件,每个程序集一个 - 它们如何在一个测试项目中共存?
谢谢!
nun*_*axe 54
好吧,如果您需要在多个项目中共享App.config文件,我只需在每个项目中"添加为链接"原始App.config文件.
假设你有原始App.config的ProjectA.然后你有ProjectATest1和ProjectATest2.在每个TestX项目中:
它将在每个TestX项目中创建一个App.config快捷方式.如果你改变它,它会随处变化.
希望这可以帮助.
首先,如果您正在进行单元测试,那么您可能希望看一下模拟配置,而不是无论如何都要读取它.
如果你真的想让配置可用(我以前为集成测试做过),那么你可以为你的程序集添加一个构建后的步骤(我假设1-1的程序集映射到测试 - 组件).
post build步骤(在你的测试程序集上)看起来像这样:
copy /y "<path to your assembly under test>.dll.config" "$(TargetDir)\$(TargetName).dll.config"
Run Code Online (Sandbox Code Playgroud)
基本上,您正在复制已由visual studio为您正在测试的程序集重命名的app.config,以匹配测试程序集的预期配置名称.