<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Unit Testing</title>
        <link>http://geekswithblogs.net/TimH/category/4284.aspx</link>
        <description>Unit Testing</description>
        <language>en-NZ</language>
        <copyright>Tim Huffam</copyright>
        <managingEditor>timhuffam@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>VS 2008 crashes when running unit tests - VSPERF?</title>
            <link>http://geekswithblogs.net/TimH/archive/2008/08/27/vs-2008-crashes-when-running-unit-tests---vsperf.aspx</link>
            <description>&lt;p&gt;Sometimes Visual Studio 2008 (Team System Developer Edition - with Team Explorer and TFS Power Tools) crashes (disappearing completely) when running unit tests.&lt;/p&gt;
&lt;p&gt;I have not yet tried SP1 for VS2008 - will hopefully try this in the next week or two.&lt;/p&gt;
&lt;p&gt;Not really sure what causes this - but have noticed that the following error is written to the windows event log prior to the crash (not at the same time).&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Event Type: Error&lt;br /&gt;
Event Source: VSPERF&lt;br /&gt;
Event Category: None&lt;br /&gt;
Event ID: 1406&lt;br /&gt;
Date:  22/08/2008&lt;br /&gt;
Time:  16:27:18&lt;br /&gt;
User:  N/A&lt;br /&gt;
Computer: MYPC&lt;br /&gt;
Description:&lt;br /&gt;
&lt;font face="Arial"&gt;There was an error connecting to the Logger Engine while registering C:\Dev\DEV\Release1\Source\MyWebProject\bin\MyWebProject.dll for coverage.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Initially I thought it was a particular test or peice of target code that caused it, but found that the crash occured at seemingly random moments ie I tried running all tests and it would crash at test number 259 (out of 264), then tried running the first 100 tests and it crashed - then tried the last 20 tests and it crashed-  even tried running 1 test and it crashed.  This was the worst case of this problem - over the past few weeks it (VS crashing/disappearing) would only happen every now and then.&lt;/p&gt;
&lt;p&gt;The only work around I've found is to replace or remove the workspace and start again...&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;If you have pending changes, shelve them first.&lt;/li&gt;
    &lt;li&gt;Using Source Control Explorer, remove the workspace.&lt;/li&gt;
    &lt;li&gt;Close the solution in VS.&lt;/li&gt;
    &lt;li&gt;Within a VS command prompt run the following command to remove all workspaces (if you have many workspaces and only want to remove the one workspace then specify it's name instead of the asterisk used below):&lt;br /&gt;
        &lt;font face="Courier New" color="#0000ff"&gt;tf workspaces /remove:*&lt;/font&gt;&lt;/li&gt;
    &lt;li&gt;Use the Source Control Explorer to recreate a new workspace.  &lt;br /&gt;
    &lt;strong&gt;Note:&lt;/strong&gt; if you have scripts/macros that reference your original workspace source dir, then it would pay to use the same dir - if you do,  make sure you delete the contents of this dir before reassigning it to the new workspace.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;HTH&lt;br /&gt;
Tim&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;font face="Arial"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=124708"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=124708" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/TimH/aggbug/124708.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tim Huffam</dc:creator>
            <guid>http://geekswithblogs.net/TimH/archive/2008/08/27/vs-2008-crashes-when-running-unit-tests---vsperf.aspx</guid>
            <pubDate>Tue, 26 Aug 2008 21:36:21 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/TimH/comments/124708.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/TimH/archive/2008/08/27/vs-2008-crashes-when-running-unit-tests---vsperf.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/TimH/comments/commentRss/124708.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/TimH/services/trackbacks/124708.aspx</trackback:ping>
        </item>
        <item>
            <title>Checking ExpectedException and is thrown by specified type</title>
            <link>http://geekswithblogs.net/TimH/archive/2008/06/06/checking-expectedexception-and-is-thrown-by-specified-type.aspx</link>
            <description>&lt;font color="#008000"&gt;&lt;font color="#2b91af"&gt;
&lt;p&gt;&lt;font size="2"&gt;Using the VS2008 unit testing framework, if you want to check for an expected exception, sometimes your test will pass because the exception was raised by another line of code - after the line you were specifically trying to test.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000000" size="2"&gt;To resolve this you have to manually check for the expected exception - using a try-catch block.  &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000000" size="2"&gt;However there is a catch (excuse the pun)....&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000000" size="2"&gt;Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsInstanceOfType() will not fail when types are different as long as the actual value is of a type within the inheritance hierarchy of the expected type.  &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#000000" size="2"&gt;Eg the following assertion will not fail if ex is of type ArgumentNullException - as it inherts from ArgumentException.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt;&lt;font face="Courier New"&gt;Assert&lt;/font&gt;&lt;font face="Courier New"&gt;.IsInstanceOfType(ex, typeof(ArgumentException));&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;&lt;font face="Arial" color="#000000" size="2"&gt;One solution is to create your own assertion method eg:&lt;br /&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New" size="1"&gt;&lt;font color="#000000"&gt;public&lt;/font&gt; static void ExpectedExceptionThrownByType(Type expectedExceptionType, Exception actualException, Type expectedThrownByType)&lt;br /&gt;
{&lt;br /&gt;
    Assert.AreEqual(expectedExceptionType, actualException.GetType());&lt;br /&gt;
    Assert.AreEqual(actualException.TargetSite.DeclaringType, expectedThrownByType, "Expected exception to be thrown by type " + expectedThrownByType.ToString() + " but was " + actualException.TargetSite.DeclaringType.ToString());&lt;br /&gt;
}&lt;br /&gt;
&lt;font face="Arial" size="2"&gt;Note the first assertion uses AreEqual instead of IsInstanceOf() - this makes sure the exception is of a specific type (rather than any one up the inheritance heirarchy).&lt;/font&gt;&lt;/font&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=122658"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=122658" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/TimH/aggbug/122658.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tim Huffam</dc:creator>
            <guid>http://geekswithblogs.net/TimH/archive/2008/06/06/checking-expectedexception-and-is-thrown-by-specified-type.aspx</guid>
            <pubDate>Fri, 06 Jun 2008 04:19:22 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/TimH/comments/122658.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/TimH/archive/2008/06/06/checking-expectedexception-and-is-thrown-by-specified-type.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/TimH/comments/commentRss/122658.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/TimH/services/trackbacks/122658.aspx</trackback:ping>
        </item>
        <item>
            <title>Unit testing with NUnit and member accessibility - and the InternalsVisibleTo attribute</title>
            <link>http://geekswithblogs.net/TimH/archive/2007/08/30/115063.aspx</link>
            <description>&lt;p style="MARGIN: 0cm 0cm 0pt"&gt;&lt;font face="Arial"&gt;One of the annoying things about unit testing, is that not all members of the target code class are accessibly to the test fixtures.&lt;span&gt;  &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN: 0cm 0cm 0pt"&gt;&lt;font face="Arial"&gt;There are limited options to work around this (as you really don’t want to put the unit tests within the code assembly).&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN: 0cm 0cm 0pt"&gt;&lt;font face="Arial"&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN: 0cm 0cm 0pt"&gt;&lt;font face="Arial"&gt;In the past, the usual method has been to open up the access levels of the code class members.&lt;span&gt;  &lt;/span&gt;This isn’t ideal from a best practices and security point of view.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN: 0cm 0cm 0pt"&gt;&lt;font face="Arial"&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN: 0cm 0cm 0pt"&gt;&lt;font face="Arial"&gt;However, as of .Net 2.0 a better method has been introduced.&lt;span&gt;  &lt;/span&gt;This is to use the &lt;em&gt;InternalsVisibleTo&lt;/em&gt; attribute on the code assembly.&lt;span&gt;  &lt;/span&gt;This makes any code members with an accessibility level of internal or above (internal, protected internal and public) available to the specified assemblies.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN: 0cm 0cm 0pt"&gt;&lt;font face="Arial"&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN: 0cm 0cm 0pt"&gt;&lt;font face="Arial"&gt;To use this attribute add the following line to the AssemblyInfo.cs file of the code assembly:&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN: 6pt 0cm"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;[assembly: &lt;span style="COLOR: #2b91af"&gt;InternalsVisibleTo&lt;/span&gt;(&lt;span style="COLOR: #a31515"&gt;"MyAssembly.UnitTests"&lt;/span&gt;)]&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN: 0cm 0cm 0pt"&gt;&lt;font face="Arial"&gt;where MyAssembly.UnitTests is the unit test assembly name.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN: 0cm 0cm 0pt"&gt;&lt;font face="Arial"&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN: 0cm 0cm 0pt"&gt;&lt;font face="Arial"&gt;Tim&lt;span style="FONT-SIZE: 10pt"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=115063"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=115063" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/TimH/aggbug/115063.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tim Huffam</dc:creator>
            <guid>http://geekswithblogs.net/TimH/archive/2007/08/30/115063.aspx</guid>
            <pubDate>Wed, 29 Aug 2007 16:39:26 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/TimH/comments/115063.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/TimH/archive/2007/08/30/115063.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/TimH/comments/commentRss/115063.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/TimH/services/trackbacks/115063.aspx</trackback:ping>
        </item>
        <item>
            <title>.Net Error: Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.ExceptionHandlingException : The type '... .LoggingExceptionHandler..' cannot be resolved.</title>
            <link>http://geekswithblogs.net/TimH/archive/2007/08/27/114986.aspx</link>
            <description>&lt;p&gt;&lt;font face="Arial"&gt;Here's another problem I had when trying to get the Microsoft Enterprise Library - exception logging working.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;The following error was caused because I did not add references to all the assemblies used.&lt;br /&gt;
 &lt;br /&gt;
MyApp.UnitTests.BuildHelperTests.DBConnectionString_Get : Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.ExceptionHandlingException : The type 'Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging.LoggingExceptionHandler, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging, Version=3.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' cannot be resolved. Please verify the spelling is correct or that the full type name is provided.&lt;br /&gt;
  ----&amp;gt; System.ArgumentException : The type 'Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging.LoggingExceptionHandler, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging, Version=3.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' cannot be resolved. Please verify the spelling is correct or that the full type name is provided.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;I&lt;font face="Arial"&gt;n this case I needed to add reference to Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging.dll.  &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Also, when unit testing my app, VS did not copy this (and a couple of other assemblies) from the original code project to the unit test project - so the solution here was to add a post build event to copy them across to the unit test target (bin/debug) dir.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;HTH&lt;/p&gt;
&lt;p&gt; Tim&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114986"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114986" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/TimH/aggbug/114986.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tim Huffam</dc:creator>
            <guid>http://geekswithblogs.net/TimH/archive/2007/08/27/114986.aspx</guid>
            <pubDate>Sun, 26 Aug 2007 16:24:19 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/TimH/comments/114986.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/TimH/archive/2007/08/27/114986.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/TimH/comments/commentRss/114986.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/TimH/services/trackbacks/114986.aspx</trackback:ping>
        </item>
        <item>
            <title>NUnit not working properly - cannot find TestFixtures (Reason: Has no TestFixtures)/getting Visual Studio to automatically run NUnit</title>
            <link>http://geekswithblogs.net/TimH/archive/2007/08/02/114340.aspx</link>
            <description>&lt;div&gt;&lt;span&gt;&lt;font face="Arial" size="2"&gt;When trying to run NUnit against an assembly, it loads the assembly fine, but when you run it, it cannot find any tests (even though the assembly contains many tests).  &lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;font face="Arial" size="2"&gt;&lt;/font&gt;&lt;/span&gt; &lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;font face="Arial" size="2"&gt;Under the 'Tests Not Run' tab, if you expand the treeview, it states: "Reason: Has no TestFixtures".&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;font face="Arial" size="2"&gt;&lt;/font&gt;&lt;/span&gt; &lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;font face="Arial" size="2"&gt;This problem is caused when NUnit does not have adequate rights to the assembly.  In my case it was because my project was on a network drive.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;font face="Arial" size="2"&gt;&lt;/font&gt;&lt;/span&gt; &lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;font face="Arial" size="2"&gt;A simple solution to this is to add a post build event in Visual Studio to copy the assembly files from the network drive onto a local drive (ie in a temp dir), then run NUnit against this temp copy.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;font face="Arial" size="2"&gt;&lt;/font&gt;&lt;/span&gt; &lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;font face="Arial" size="2"&gt;1. Within VS, open the project properties.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;font face="Arial" size="2"&gt;2. Go to the &lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font face="Arial" size="2"&gt;Build Events tab and enter the following '&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font face="Arial" size="2"&gt;Post-build event command line':&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;font face="Arial" size="2"&gt;      del /q c:\temp\nunit\*.*&lt;br /&gt;
      copy "$(TargetDir)*.*" c:\temp\nunit&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;font face="Arial" size="2"&gt;3. Go to the '&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;font face="Arial" size="2"&gt;Debug' tab and enter the following details:&lt;/font&gt; &lt;script&gt;&lt;!--
D(["mb","\u003c/span\&gt;\u003c/div\&gt;\n\u003cdiv\&gt;\u003cspan\&gt;\u003cfont face\u003d\"Arial\" size\u003d\"2\"\&gt;      Start external program: C:\\Program \nFiles\\NUnit 2.4.1\\bin\\nunit.exe \u003c/font\&gt;\u003c/span\&gt;\u003c/div\&gt;\n\u003cdiv\&gt;\u003cspan\&gt;\u003cfont face\u003d\"Arial\" size\u003d\"2\"\&gt;      Command line arguments: \n&amp;quot;c:\\temp\\nunit\\MyProject.dll&amp;quot; /run\u003c/font\&gt;\u003c/span\&gt;\u003c/div\&gt;\n\u003cdiv\&gt;\u003cspan\&gt;\u003cfont face\u003d\"Arial\" size\u003d\"2\"\&gt;\u003c/font\&gt;\u003c/span\&gt; \u003c/div\&gt;\n\u003cdiv\&gt;\u003cspan\&gt;\u003cfont face\u003d\"Arial\" size\u003d\"2\"\&gt;Now when you click \nrun on your solution it will start NUnit, load the assembly and run the tests \nautomatically.\u003c/font\&gt;\u003c/span\&gt;\u003c/div\&gt;\n\u003cdiv\&gt;\u003cspan\&gt;\u003cfont face\u003d\"Arial\" size\u003d\"2\"\&gt;\u003c/font\&gt;\u003c/span\&gt; \u003c/div\&gt;\n\u003chr\&gt;\nThis email message and attachments are confidential to our organisation and \nsubject to legal privilege.  If you have received this email in error, \nplease advise the sender immediately and destroy the message and any \nattachments. If you are not the intended recipient you are notified that any \nuse, distribution, amendment, copying or any action taken or omitted to be taken \nin reliance of this message or attachments is prohibited.  You can read our \nPrivacy Policy here: \u003ca href\u003d\"http://www.asbbank.co.nz/privacystatement.stm\" target\u003d\"_blank\" onclick\u003d\"return top.js.OpenExtLink(window,event,this)\"\&gt;\u003cfont color\u003d\"#0000ff\"\&gt;www.asbbank.co.nz/privacystatem\u003cWBR\&gt;ent.stm\u003c/font\&gt;\u003c/a\&gt; \n\u003cp\&gt;This communication does not designate an information system for the purposes \nof the New Zealand Electronic Transaction Act 2002. \n\u003chr\&gt;\n\u003c/p\&gt;\u003c/div\&gt;\n",0]
);

//--&gt;&lt;/script&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;font face="Arial" size="2"&gt;      Start external program: C:\Program Files\NUnit 2.4.1\bin\nunit.exe &lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;font face="Arial" size="2"&gt;      Command line arguments: "c:\temp\nunit\MyProject.dll" /run&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;font face="Arial" size="2"&gt;&lt;/font&gt;&lt;/span&gt; &lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;font face="Arial" size="2"&gt;Now when you click run on your solution it will start NUnit, load the assembly and run the tests automatically.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114340"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114340" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/TimH/aggbug/114340.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tim Huffam</dc:creator>
            <guid>http://geekswithblogs.net/TimH/archive/2007/08/02/114340.aspx</guid>
            <pubDate>Wed, 01 Aug 2007 14:23:06 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/TimH/comments/114340.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/TimH/archive/2007/08/02/114340.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/TimH/comments/commentRss/114340.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/TimH/services/trackbacks/114340.aspx</trackback:ping>
        </item>
        <item>
            <title>Running NUnit against multiple versions of .NET (1.1 and 2.0) from Visual Studio (VS.NET 2003 and VS2005)</title>
            <link>http://geekswithblogs.net/TimH/archive/2006/03/30/73806.aspx</link>
            <description>&lt;P&gt;This is not the prettiest solution - but is the only way I could easily get it all working - so I could click the Run button from VS to startup NUnit and run my tests project.&lt;/P&gt;
&lt;P&gt;As a primer, read &lt;A href="http://blogs.msdn.com/jamesnewkirk/archive/2004/07/05/173513.aspx"&gt;James Newkirks&lt;/A&gt; article on this (he explains the config files a bit more than I do).&lt;/P&gt;
&lt;P&gt;Firstly to get NUnit to&amp;nbsp;work with .NET 2.0 assemblies you need to have this in your nunit config file (nunit-gui.exe.config):&lt;/P&gt;
&lt;P&gt;&amp;lt;startup&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;supportedRuntime version="v2.0.50727" /&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;requiredRuntime version="v2.0.50727" /&amp;gt;&lt;BR&gt;&amp;lt;/startup&amp;gt;&lt;/P&gt;
&lt;P&gt;If you include a line referencing&amp;nbsp;v1.1&amp;nbsp;then it'll use 1.1.&lt;/P&gt;
&lt;P&gt;So this means to run both 2.0 and 1.1 we need 2 config files.&lt;/P&gt;
&lt;P&gt;The 1.1 config file has this startup section:&lt;/P&gt;&lt;STARTUP&gt;
&lt;P&gt;&amp;lt;startup&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;supportedRuntime version="v1.1.4322" /&amp;gt; &lt;BR&gt;&amp;lt;/startup&amp;gt;&lt;/P&gt;
&lt;P&gt;Unfortuntely I couldnt see any obvious way to tell NUnit to point to a specific config file (there is /config option but I believe that is for configurations within NUnit - not which app config file to use).&amp;nbsp; So to get around this there are 2&amp;nbsp;options:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Use&amp;nbsp;2 config files and use a batch script to rename the appropriate one to nunit-gui.exe.config prior to starting Nunit. 
&lt;LI&gt;Use&amp;nbsp;2 config files and 2 executable files (named to match the config files).&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;I chose 2. because it removes any ambiguitiy.&amp;nbsp; So what I have are the following files in the Nunit bin dir:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;nunit-gui_1.1.exe 
&lt;LI&gt;nunit-gui_1.1.exe.config 
&lt;LI&gt;nunit-gui_2.0.exe 
&lt;LI&gt;nunit-gui_2.0.exe.config&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Running the exe's will start NUnit with the corresponding .NET runtime version.&lt;/P&gt;
&lt;P&gt;Now to get it working from VS was the next problem...&lt;/P&gt;
&lt;P&gt;For some reason starting NUnit for 2.0 from VS2005 does not work.&lt;/P&gt;
&lt;P&gt;The workaround (dont have time to figure out the real cause) is to create a 1.1 console app that executes another program - like a batch script (I tried a batch script but that had complications too). Here's the code:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt;&lt;FONT color=#0000ff&gt;public&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;static&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;void&lt;/FONT&gt; Main(&lt;FONT color=#0000ff&gt;string&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt;[] args)&lt;BR&gt;{&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt;(args.Length==0)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("Error: No command specified.");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("Syntax: CmdRunner.exe &lt;COMMAND&gt;[&lt;PARAM&gt; &lt;PARAM&gt;...]");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("Note &lt;COMMAND&gt;must be the full path to the executable. Parameters are optional.");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#0000ff&gt;return&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#0000ff&gt;string&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt; paramsToPass = "";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#0000ff&gt;for&lt;/FONT&gt;(&lt;FONT color=#0000ff&gt;int&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt; i=1;i&lt;ARGS.LENGTH;I++)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#0000ff&gt;if&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;(paramsToPass!="")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; paramsToPass+=",";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; paramsToPass += args[i];&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("About to run: " + args[0]);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("Passing params: " + (paramsToPass==""?"&lt;NO specified params&gt;":paramsToPass));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt;try&lt;BR&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Diagnostics.Process.Start(args[0], paramsToPass);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#0000ff&gt;catch&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;(Exception ex)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("Error occured trying to run: " + args[0]);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("Exception: " + ex.Message);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;}&lt;BR&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;I called this CmdRunner.exe.&lt;/P&gt;
&lt;P&gt;Next problem was that this didnt like spaces in the parameters passed to it (these were in my project directory structure).&amp;nbsp; So modify your path to use the old 8.3 notation (to find out what this is do a "dir /x" at the command prompt).&lt;/P&gt;
&lt;P&gt;Lastly, setup VS to run this when you click on Run:&lt;/P&gt;
&lt;P&gt;VS.NET 2003:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Under project properties select Debug. 
&lt;LI&gt;Set Debug Mode to Program 
&lt;LI&gt;Set Start Application to the CmdRunner path eg: O:\Visual Studio Projects\CmdRunner\bin\Debug\CmdRunner.exe 
&lt;LI&gt;Set Command Line Arguments to the appropriate NUnit version plus the assembly dll.&amp;nbsp; It is critical that these contain no spaces.&amp;nbsp; Also, if you want NUnit to automatically run the tests upon startup, then the /run argument&amp;nbsp;needs to be included in the second argument string (this has one space before it). Note these must be enclosed in quotes eg:&lt;BR&gt;"C:\Progra~1\NUNIT2~1.2\bin\nunit-gui_1.1.exe" "C:\Dev\VSSWRK\Ecommerce\DotnetVarious\DRKW~1.DIR\Tests\bin\Debug\Tests.dll /run"&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;VS2005:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Under project properties select Debugging tab. 
&lt;LI&gt;Set Start Action to 'Start external program' and set it's path to the CmdRunner path.&amp;nbsp; Because this 1.1 program is CLR compatible with 2.0 there's no problems&amp;nbsp;running it from here)&amp;nbsp;eg: O:\Visual Studio Projects\CmdRunner\bin\Debug\CmdRunner.exe 
&lt;LI&gt;Set Command Line Arguments to the appropriate NUnit version plus the assembly dll.&amp;nbsp; It is critical that these contain no spaces.&amp;nbsp; Also, if you want NUnit to automatically run the tests upon startup, then the /run argument&amp;nbsp;needs to be included in the second argument string (this has one space before it). Note these must be enclosed in quotes eg:&lt;BR&gt;"C:\Progra~1\NUNIT2~1.2\bin\nunit-gui_2.0.exe" "C:\Dev\VSSWRK\Ecommerce\DotnetVarious\DRKWDI~1.1\Net2.0Tests\bin\Debug\Net2.0Tests.dll /run"&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;And that's it.&amp;nbsp; Good luck.&lt;/P&gt;
&lt;P&gt;HTH&lt;/P&gt;
&lt;P&gt;Tim&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=73806"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=73806" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/TimH/aggbug/73806.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tim Huffam</dc:creator>
            <guid>http://geekswithblogs.net/TimH/archive/2006/03/30/73806.aspx</guid>
            <pubDate>Wed, 29 Mar 2006 20:47:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/TimH/comments/73806.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/TimH/archive/2006/03/30/73806.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/TimH/comments/commentRss/73806.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/TimH/services/trackbacks/73806.aspx</trackback:ping>
        </item>
        <item>
            <title>System.BadImageFormatException : The format of the file ‘TestLibrary’ is invalid. NUnit on VS 2005 / .NET 2.0</title>
            <link>http://geekswithblogs.net/TimH/archive/2006/03/24/73238.aspx</link>
            <description>A thousand thank you's to James for &lt;A href="http://blogs.msdn.com/jamesnewkirk/archive/2004/07/05/173513.aspx"&gt;this&lt;/A&gt; post: &lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=73238"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=73238" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/TimH/aggbug/73238.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Tim Huffam</dc:creator>
            <guid>http://geekswithblogs.net/TimH/archive/2006/03/24/73238.aspx</guid>
            <pubDate>Fri, 24 Mar 2006 00:37:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/TimH/comments/73238.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/TimH/archive/2006/03/24/73238.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/TimH/comments/commentRss/73238.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/TimH/services/trackbacks/73238.aspx</trackback:ping>
        </item>
    </channel>
</rss>