<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://consultingblogs.emc.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Gordon Duthie's Blog</title><link>http://consultingblogs.emc.com/gordonduthie/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Modifying web.config at runtime for unit test</title><link>http://consultingblogs.emc.com/gordonduthie/archive/2008/11/19/modifying-web-config-at-runtime-for-unit-test.aspx</link><pubDate>Wed, 19 Nov 2008 08:47:00 GMT</pubDate><guid isPermaLink="false">e847c0e7-38d9-45c0-b593-56747303e088:13325</guid><dc:creator>Gordon.Duthie</dc:creator><slash:comments>1</slash:comments><comments>http://consultingblogs.emc.com/gordonduthie/comments/13325.aspx</comments><wfw:commentRss>http://consultingblogs.emc.com/gordonduthie/commentrss.aspx?PostID=13325</wfw:commentRss><description>&lt;P&gt;Lately I've had the need to use the test framework from within Visual Studio. However, one problem which i came across was trying to change the web.config appSettings and connectionString to reference a local database. &lt;/P&gt;
&lt;P&gt;Below is the solution&amp;nbsp;I have came up with: &lt;/P&gt;
&lt;P&gt;[ClassInitialize()]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void ChangeWebConfigValuesForTest(TestContext testContext)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Get the configuration file.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ExeConfigurationFileMap map = new ExeConfigurationFileMap();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; map.ExeConfigFilename = "c:\\localpath\\web.config";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Configuration webConfig = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Change the app setting value&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; AppSettingsSection appSettingsSection = (AppSettingsSection)webConfig.GetSection("appSettings");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; appSettingsSection.Settings["valueToChange"].Value = "TestValue"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Change connection string setting&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ConnectionStringSettings connectionStringSettings =&amp;nbsp;webConfig.ConnectionStrings.ConnectionStrings["DBConnectionString"];&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; connectionStringSettings.ConnectionString = "Data Source=.;Initial Catalog=TestDB;Persist Security Info=True;User ID=testuser;Password=password"; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Save the config file &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; webConfig.Save();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;img src="http://consultingblogs.emc.com/aggbug.aspx?PostID=13325" width="1" height="1"&gt;</description><category domain="http://consultingblogs.emc.com/gordonduthie/archive/tags/Testiing/default.aspx">Testiing</category><category domain="http://consultingblogs.emc.com/gordonduthie/archive/tags/web_2E00_config/default.aspx">web.config</category></item></channel></rss>
