<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Third Shelf &#187; rant</title>
	<atom:link href="http://thirdshelf.com/tag/rant/feed/" rel="self" type="application/rss+xml" />
	<link>http://thirdshelf.com</link>
	<description></description>
	<lastBuildDate>Sun, 13 May 2012 17:08:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='thirdshelf.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Third Shelf &#187; rant</title>
		<link>http://thirdshelf.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://thirdshelf.com/osd.xml" title="Third Shelf" />
	<atom:link rel='hub' href='http://thirdshelf.com/?pushpress=hub'/>
		<item>
		<title>Unit testing with Jenkins</title>
		<link>http://thirdshelf.com/2011/03/21/unit-testing-with-jenkins/</link>
		<comments>http://thirdshelf.com/2011/03/21/unit-testing-with-jenkins/#comments</comments>
		<pubDate>Mon, 21 Mar 2011 15:51:23 +0000</pubDate>
		<dc:creator>Sydney du Plooy</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[visual studio]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[.NET Framework]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[Jenkins]]></category>
		<category><![CDATA[MbUnit]]></category>
		<category><![CDATA[Microsoft Visual Studio]]></category>
		<category><![CDATA[msbuild]]></category>
		<category><![CDATA[MsTest]]></category>
		<category><![CDATA[NUnit]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[Unit testing]]></category>
		<category><![CDATA[XUnit]]></category>

		<guid isPermaLink="false">http://thirdshelf.com/?p=511</guid>
		<description><![CDATA[Continuing to setup a build for the first time with Jenkins there is, uh, another challenge. For some reason, I thought it clever to make use of MsTest. This works wonderfully on the development machine. But, of course, when it comes to the build server, you can expect all sorts of weirdness. For example, error CS0246: The [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thirdshelf.com&#038;blog=3179385&#038;post=511&#038;subd=thirdshelf&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Continuing to setup a build for the first time with Jenkins there is, uh, another challenge. For some reason, I thought it clever to make use of MsTest. This works wonderfully on the development machine. But, of course, when it comes to the build server, you can <a href="http://thirdshelf.com/2011/03/19/building-a-net-application-with-jenkins/">expect all sorts of weirdness</a>. For example, error CS0246: The type or namespace name &#8216;TestMethodAttribute&#8217; could not be found&#8230;</p>
<p>We&#8217;re sorry, but our testing tools don&#8217;t come standard with the .NET Framework, or in any other way, except TFS and Visual Studio, unless you are willing to follow this <a href="http://www.shunra.com/shunrablog/index.php/2009/04/23/running-mstest-without-visual-studio/">brave soul</a>. I share <a href="http://devlicio.us/blogs/derik_whittaker/archive/2008/09/25/clean-build-server-with-mstest-fail.aspx">Derik Whittaker&#8217;s sentiment on the MsTest and build server</a> issue.</p>
<blockquote><p>This is another issue to me because MSTest is the ONLY test framework (for .Net) that I know of that does not run with a single DLL placed into the bin (or any other output directory).  I just have to ask the genius&#8217; over in Redmond what the hell were they smoking when they decided to build MSTest.  It is pretty clear they had no prior knowledge of how to use the other tools such as NUnit, MBUnit or xUnit (I know, xUnit was not out yet).  I know this because of all the various testing frameworks MSTest is the one that does everything different.  You could argue they were on the cutting edge and were innovating, but I call BS on that.</p></blockquote>
<p>This can be solved. <em>So long MsTest&#8230; Hello NUnit!</em></p>
<p><strong>Converting from MsTest to NUnit</strong></p>
<p>Converting from MsTest is a simple case of find and replace of <a href="http://nunit.org/index.php?p=attributes&amp;r=2.5.9">attributes</a>. NUnit  has the nifty Assert.Catch&lt;T&gt; which beats <a href="http://www.mbunit.com/">MbUnit</a>, MsTest and <a href="http://xunit.codeplex.com">xUnit</a>. xUnit comes with Assert.Throws&lt;T&gt; but cannot assert the exception message whereas NUnit can. No more [ExpectedException] attributes.</p>
<p>Integrating NUnit with the build file (which is MsBuild) is pretty easy:</p>
<p>&lt;Exec Command=&#8221;$(NUnitFolder)\nunit-console-x86.exe [TestAssembly] /framework=net-4.0 /xml=$(TestResultsFolder)\TestResults.xml&#8221; /&gt;</p>
<p>A single Exec statement and out comes an Xml file. To keep the build server clean, I decided to add all the necessary files for unit testing into source control along with the project. The bare minimum files for running NUnit from the command line comes down to the following files:</p>
<ul>
<li>nunit.core.dll</li>
<li>nunit.core.interfaces.dll</li>
<li>nunit.framework.dll</li>
<li>nunit.util.dll</li>
<li>nunit.console-runner.dll</li>
<li>nunit-console-x86.exe</li>
<li>nunit-agent-x86.exe</li>
<li>nunit-agent-x86.exe.config</li>
</ul>
<p>To make it work on .Net Framework 4.0, you have to include the <em>/framework=net-4.0</em> switch on the command line.</p>
<p><strong>Setting up Jenkins with NUnit</strong></p>
<p>Install the NUnit plugin for Jenkins, point it to your test results file and after a build you&#8217;ll get the summarised test results.  It&#8217;s a neat table with all the classes and their respective timings and so on.</p>
<p><a href="http://thirdshelf.files.wordpress.com/2011/03/jenkins-test-results.png"><img class="alignnone size-full wp-image-541" title="Jenkins-Test-Results" src="http://thirdshelf.files.wordpress.com/2011/03/jenkins-test-results.png?w=720" alt=""   /></a></p>
<p>Finally, I have a working build with unit testing. If only it had an installer&#8230;</p>
<p><strong><br />
</strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/thirdshelf.wordpress.com/511/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/thirdshelf.wordpress.com/511/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/thirdshelf.wordpress.com/511/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/thirdshelf.wordpress.com/511/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/thirdshelf.wordpress.com/511/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/thirdshelf.wordpress.com/511/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/thirdshelf.wordpress.com/511/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/thirdshelf.wordpress.com/511/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/thirdshelf.wordpress.com/511/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/thirdshelf.wordpress.com/511/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/thirdshelf.wordpress.com/511/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/thirdshelf.wordpress.com/511/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/thirdshelf.wordpress.com/511/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/thirdshelf.wordpress.com/511/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thirdshelf.com&#038;blog=3179385&#038;post=511&#038;subd=thirdshelf&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://thirdshelf.com/2011/03/21/unit-testing-with-jenkins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Sydney</media:title>
		</media:content>

		<media:content url="http://thirdshelf.files.wordpress.com/2011/03/jenkins-test-results.png" medium="image">
			<media:title type="html">Jenkins-Test-Results</media:title>
		</media:content>
	</item>
		<item>
		<title>Building a .NET application with Jenkins</title>
		<link>http://thirdshelf.com/2011/03/19/building-a-net-application-with-jenkins/</link>
		<comments>http://thirdshelf.com/2011/03/19/building-a-net-application-with-jenkins/#comments</comments>
		<pubDate>Sat, 19 Mar 2011 20:28:52 +0000</pubDate>
		<dc:creator>Sydney du Plooy</dc:creator>
				<category><![CDATA[rants]]></category>
		<category><![CDATA[visual studio]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[.NET Framework]]></category>
		<category><![CDATA[ASP.NET MVC Framework]]></category>
		<category><![CDATA[Continuous integration]]></category>
		<category><![CDATA[Jenkins]]></category>
		<category><![CDATA[Microsoft Visual Studio]]></category>
		<category><![CDATA[rant]]></category>

		<guid isPermaLink="false">http://thirdshelf.com/?p=497</guid>
		<description><![CDATA[Building a .NET project using Jenkins CI is a true breeze&#8230; Jenkins configuration The first thing is to install the MsBuild Jenkins plugin. After that, it is a quick pointing to the msbuild executable and we&#8217;re off to a good start&#8230; Project configuration Next, configure the project to use the MsBuild version we setup. Point [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thirdshelf.com&#038;blog=3179385&#038;post=497&#038;subd=thirdshelf&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Building a .NET project using Jenkins CI is a true breeze&#8230;</p>
<p><strong>Jenkins configuration</strong></p>
<p>The first thing is to install the <a href="http://wiki.jenkins-ci.org/display/JENKINS/MSBuild+Plugin">MsBuild Jenkins plugin</a>. After that, it is a quick pointing to the msbuild executable and we&#8217;re off to a good start&#8230;</p>
<p><a href="http://thirdshelf.files.wordpress.com/2011/03/jenkins-msbuild-config.png"><img class="alignnone size-full wp-image-503" title="Jenkins-MsBuild-Config" src="http://thirdshelf.files.wordpress.com/2011/03/jenkins-msbuild-config.png?w=720" alt=""   /></a></p>
<p><strong>Project configuration</strong></p>
<p>Next, configure the project to use the MsBuild version we setup. Point it to your build file and we are ready to build&#8230;</p>
<p><a href="http://thirdshelf.files.wordpress.com/2011/03/jenkins-msbuild-project-config.png"><img class="alignnone size-full wp-image-504" title="Jenkins-MsBuild-Project-Config" src="http://thirdshelf.files.wordpress.com/2011/03/jenkins-msbuild-project-config.png?w=720" alt=""   /></a></p>
<p><strong>The fairy tale</strong></p>
<p>In theory, of course, that is how simple it should have been. At least, that&#8217;s how the fairy tale goes. Having a look at the console output and <em>bam</em>, back to the cruel world where I find myself with a couple of challenges:</p>
<ol>
<li>warning MSB3644: The reference assemblies for framework &#8220;.NETFramework,Version=v4.0&#8243; were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend.</li>
<li>error MSB4019: The imported project &#8220;C:\Program Files\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets&#8221; was not found. Confirm that the path in the &lt;Import&gt; declaration is correct, and that the file exists on disk.</li>
<li>error CS0234: The type or namespace name &#8216;Mvc&#8217; does not exist in the namespace &#8216;System.Web&#8217; (are you missing an assembly reference?)</li>
</ol>
<p><strong>The fixing</strong></p>
<p>The &nbsp;first issue is relatively simple to fix. It requires that you download and install the small (~500MB) <a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=35aeda01-421d-4ba5-b44b-543dc8c33a20&amp;displaylang=en">Windows SDK for Windows 7 and .NET Framework 4</a>. You don&#8217;t need all of it. Only select the .NET Development components in the installation options. Install this on the server and the warnings be gone!</p>
<p>The second, yeah, the second issue is where the Caption Hook catches something unmentionable. To fix this; you&#8217;ll feel the hook&#8230; Two choices; either create the folders and copy the missing file from your development machine or install Visual Studio on the build server. The purist rants and raves. Go with the lesser of the two evils, create the folder structure and copy the file. That wasn&#8217;t that painful; I feel dirty.</p>
<p>The third issue is that ASP.NET MVC 3 is not found anywhere on the server. Easy fix, <a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=d2928bc1-f48c-4e95-a064-2a455a22c8f6&amp;displaylang=en">download and install ASP.NET MVC 3</a>.</p>
<p>Finally, the project builds and all is well. For now.</p>
<p>by <a title="Sydney" rel="author" href="http://thirdshelf.com/about/">Sydney du Plooy</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/thirdshelf.wordpress.com/497/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/thirdshelf.wordpress.com/497/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/thirdshelf.wordpress.com/497/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/thirdshelf.wordpress.com/497/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/thirdshelf.wordpress.com/497/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/thirdshelf.wordpress.com/497/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/thirdshelf.wordpress.com/497/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/thirdshelf.wordpress.com/497/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/thirdshelf.wordpress.com/497/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/thirdshelf.wordpress.com/497/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/thirdshelf.wordpress.com/497/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/thirdshelf.wordpress.com/497/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/thirdshelf.wordpress.com/497/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/thirdshelf.wordpress.com/497/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thirdshelf.com&#038;blog=3179385&#038;post=497&#038;subd=thirdshelf&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://thirdshelf.com/2011/03/19/building-a-net-application-with-jenkins/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Sydney</media:title>
		</media:content>

		<media:content url="http://thirdshelf.files.wordpress.com/2011/03/jenkins-msbuild-config.png" medium="image">
			<media:title type="html">Jenkins-MsBuild-Config</media:title>
		</media:content>

		<media:content url="http://thirdshelf.files.wordpress.com/2011/03/jenkins-msbuild-project-config.png" medium="image">
			<media:title type="html">Jenkins-MsBuild-Project-Config</media:title>
		</media:content>
	</item>
		<item>
		<title>Before writing freeware or open-source applications&#8230;</title>
		<link>http://thirdshelf.com/2008/09/03/before-writing-freeware-or-open-source-applications/</link>
		<comments>http://thirdshelf.com/2008/09/03/before-writing-freeware-or-open-source-applications/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 17:50:24 +0000</pubDate>
		<dc:creator>Sydney du Plooy</dc:creator>
				<category><![CDATA[rants]]></category>
		<category><![CDATA[rant]]></category>

		<guid isPermaLink="false">http://thirdshelf.wordpress.com/?p=154</guid>
		<description><![CDATA[Today, was one of the days where open-source and freeware was a complete let down. After downloading a couple of applications of this nature, I was horrified! The quality of some of these applications were way below par, user interfaces that made no sense and applications that the author just simply abandoned. Don&#8217;t get me [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thirdshelf.com&#038;blog=3179385&#038;post=154&#038;subd=thirdshelf&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today, was one of the days where open-source and freeware was a complete let down. After downloading a couple of applications of this nature, I was horrified! The quality of some of these applications were way below par, user interfaces that made no sense and applications that the author just simply abandoned.</p>
<p>Don&#8217;t get me wrong. One the one hand there are fantastic open-source software packages and on the other, well, not so fantastic open-source software.</p>
<p>If you intend on writing a free or open-source software application, first answer the following questions honestly before engaging in your next project:</p>
<ol>
<li>Am I going to abandon the software when things get tough?</li>
<li>Will I keep it reasonably up to date with technology?</li>
<li>Will the user interface be usable?</li>
<li>Am I willing to include a decent help file or online how to?</li>
</ol>
<p>I am not saying that you need to be worlds best designer to write software, but if you plan to give something to the community, give something decent at least.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/thirdshelf.wordpress.com/154/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/thirdshelf.wordpress.com/154/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/thirdshelf.wordpress.com/154/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/thirdshelf.wordpress.com/154/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/thirdshelf.wordpress.com/154/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/thirdshelf.wordpress.com/154/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/thirdshelf.wordpress.com/154/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/thirdshelf.wordpress.com/154/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/thirdshelf.wordpress.com/154/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/thirdshelf.wordpress.com/154/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/thirdshelf.wordpress.com/154/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/thirdshelf.wordpress.com/154/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/thirdshelf.wordpress.com/154/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/thirdshelf.wordpress.com/154/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/thirdshelf.wordpress.com/154/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/thirdshelf.wordpress.com/154/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thirdshelf.com&#038;blog=3179385&#038;post=154&#038;subd=thirdshelf&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://thirdshelf.com/2008/09/03/before-writing-freeware-or-open-source-applications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Sydney</media:title>
		</media:content>
	</item>
	</channel>
</rss>
