<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://consultingblogs.emc.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Gordon Duthie's Blog</title><subtitle type="html" /><id>http://consultingblogs.emc.com/gordonduthie/atom.aspx</id><link rel="alternate" type="text/html" href="http://consultingblogs.emc.com/gordonduthie/default.aspx" /><link rel="self" type="application/atom+xml" href="http://consultingblogs.emc.com/gordonduthie/atom.aspx" /><generator uri="http://communityserver.org" version="2.1.20423.1">Community Server</generator><updated>2008-11-19T08:47:00Z</updated><entry><title>Modifying web.config at runtime for unit test</title><link rel="alternate" type="text/html" href="http://consultingblogs.emc.com/gordonduthie/archive/2008/11/19/modifying-web-config-at-runtime-for-unit-test.aspx" /><id>http://consultingblogs.emc.com/gordonduthie/archive/2008/11/19/modifying-web-config-at-runtime-for-unit-test.aspx</id><published>2008-11-19T08:47:00Z</published><updated>2008-11-19T08:47:00Z</updated><content type="html">&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;</content><author><name>Gordon.Duthie</name><uri>http://consultingblogs.emc.com/members/Gordon.Duthie.aspx</uri></author><category term="Testiing" scheme="http://consultingblogs.emc.com/gordonduthie/archive/tags/Testiing/default.aspx" /><category term="web.config" scheme="http://consultingblogs.emc.com/gordonduthie/archive/tags/web_2E00_config/default.aspx" /></entry></feed>
