<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0"><channel><title>TestDriven.NET by Jamie Cansdale</title><link>http://weblogs.asp.net/nunitaddin/default.aspx</link><description>Zero Friction Unit Testing for Visual Studio .NET</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/testdriven" type="application/rss+xml" /><item><title>TestDriven.Net 2.22 RTM - What’s New?</title><link>http://weblogs.asp.net/nunitaddin/archive/2009/06/18/testdriven-net-2-22-rtm-what-s-new.aspx</link><pubDate>Thu, 18 Jun 2009 14:19:39 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7128999</guid><dc:creator>Jamie Cansdale</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://weblogs.asp.net/nunitaddin/rsscomments.aspx?PostID=7128999</wfw:commentRss><comments>http://weblogs.asp.net/nunitaddin/archive/2009/06/18/testdriven-net-2-22-rtm-what-s-new.aspx#comments</comments><description>&lt;p&gt;I'm happy to report that &lt;em&gt;TestDriven.NET 2.0 RTM&lt;/em&gt; has cleared the launch pad!&lt;/p&gt;  &lt;p&gt;It has been a while since the previous RTM version, so here is a quick recap of what’s new:&lt;/p&gt;  &lt;h3&gt;NUnit 2.5&lt;/h3&gt;  &lt;p&gt;TestDriven.Net now includes the production release of NUnit 2.5. This is the recommended version of NUnit if you’re using .NET 2.0 or above. To ensure maximum compatibility with .NET 1.x and legacy NUnit extensions, the last releases of NUnit 2.2 &amp;amp; 2.4 are also included.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/nunitaddin/nuni25_clDODg.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="nuni25" border="0" alt="nuni25" src="http://weblogs.asp.net/blogs/nunitaddin/nuni25_thumb_pxi0bA.png" width="244" height="156" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;(more &lt;a href="http://weblogs.asp.net/nunitaddin/archive/2008/12/02/testdriven-net-2-18-nunit-2-5-beta.aspx"&gt;here&lt;/a&gt;)&lt;/p&gt;  &lt;h3&gt;64-bit Windows&lt;/h3&gt;  &lt;p&gt;By default TestDriven.Net will execute test projects compiled for AnyCPU in a 64-bit process. There are however some test runners that must run inside a 32-bit process. If you are testing with NCover 1.5, Team Coverage, dotTrace or .NET 1.1 (MSBee), TestDriven.Net will automatically fall back to using a 32-bit process. To force your tests to always execute in a 32-bit process, you can specify ‘Platform target: x86’ in your test project’s build properties.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/nunitaddin/x86_d5EMGA.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="x86" border="0" alt="x86" src="http://weblogs.asp.net/blogs/nunitaddin/x86_thumb_/2bGwQ.png" width="244" height="138" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;F#&lt;/h3&gt;  &lt;p&gt;F# is now a first class citizen inside TestDriven.Net. To enable stack traces on failed assertions, you must specify ‘Other flags: --optimize+ notailcalls’ on your test project’s build properties. For best results use NUnit 2.5, MbUnit 3.0 or xUnit 1.1 (which all support test attributes on static methods).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/nunitaddin/fsharp_Z1Qwsw.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="fsharp" border="0" alt="fsharp" src="http://weblogs.asp.net/blogs/nunitaddin/fsharp_thumb_xWhdnQ.png" width="244" height="162" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;(more &lt;a href="http://weblogs.asp.net/nunitaddin/archive/2008/10/10/microsoft-f-and-testdriven-net-2-16.aspx"&gt;here&lt;/a&gt;)&lt;/p&gt;  &lt;h3&gt;Options&lt;/h3&gt;  &lt;p&gt;A new ‘TestDriven.Net’ options pane is available when using Visual Studio 2005 and above. This can be used to selectively include/exclude tests in specified categories, choose when to display trace/debug output and choose to use new test process for each test run (as a workaround for badly behaved tests).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/nunitaddin/options_q6RI2Q.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="options" border="0" alt="options" src="http://weblogs.asp.net/blogs/nunitaddin/options_thumb_enWT4A.png" width="244" height="143" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;(more &lt;a href="http://weblogs.asp.net/nunitaddin/archive/2008/12/03/testdriven-net-options-pane.aspx"&gt;here&lt;/a&gt;)&lt;/p&gt;  &lt;h3&gt;Visual Studio 2010 Beta1&lt;/h3&gt;  &lt;p&gt;Previous beta versions of TestDriven.Net were compatible with the PDC 2008 release of VS 2010, but not the VS 2010 Beta1 release.&amp;#160; To enable support for VS 2010 Beta1, you must do a ‘Complete’ install and assign keyboard shortcuts to the TestDriven.Net commands you wish to use.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/nunitaddin/vs2010_kctmJA.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="vs2010" border="0" alt="vs2010" src="http://weblogs.asp.net/blogs/nunitaddin/vs2010_thumb_xjX+jQ.png" width="244" height="138" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;(more &lt;a href="http://weblogs.asp.net/nunitaddin/archive/2009/06/03/testdriven-net-2-22-support-for-visual-studio-2010-beta-1.aspx"&gt;here&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;h3&gt;Typemock Isolator&lt;/h3&gt;  &lt;p&gt;TestDriven.Net now includes active support for Typemock Isolator. You can disable the Typemock Isolator add-in and leave TestDriven.Net to enable Isolator for test projects that require it. This can significantly improve performance when starting applications/web sites from Visual Studio and executing tests that don’t require Isolator.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/nunitaddin/typemock_gcpsng.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="typemock" border="0" alt="typemock" src="http://weblogs.asp.net/blogs/nunitaddin/typemock_thumb_/tC+Xg.png" width="244" height="160" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h3&gt;NCover&lt;/h3&gt;  &lt;p&gt;This version of TestDriven.Net has been tuned to work with NCover 1.5.8 (included with TD.Net) and the commercial NCover 2.x &amp;amp; 3.x versions. When you ‘Test With &amp;gt; Coverage’, the contents of NCoverExplorer will be automatically refreshed and only classes with debug symbols will appear in the tree view.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/nunitaddin/ncover_J8OIaw.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="ncover" border="0" alt="ncover" src="http://weblogs.asp.net/blogs/nunitaddin/ncover_thumb_k+83qw.png" width="244" height="162" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;(more &lt;a href="http://weblogs.asp.net/nunitaddin/archive/2009/04/21/testdriven-net-2-20-improved-ncover-integration.aspx"&gt;here&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;You can download the latest version from &lt;a href="http://www.testdriven.net/download.aspx"&gt;here&lt;/a&gt;. If you’re a professional software developer, perhaps your employer would be interested some Enterprise licenses. Feel free to point the appropriate person in your organization to the &lt;a href="http://www.testdriven.net/purchase.aspx"&gt;licensing &amp;amp; purchase&lt;/a&gt; page or &lt;a href="http://www.testdriven.net/contact.aspx"&gt;contact&lt;/a&gt; us for a quote. :)&lt;/p&gt;  &lt;p&gt;I’m now going to start working on the next version in earnest. You are welcome to &lt;a href="http://www.testdriven.net/contact.aspx"&gt;contact&lt;/a&gt; me with any suggestions you have for a future release.&lt;/p&gt;  &lt;p&gt;Thanks for your support, bug reports and interest!&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7128999" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/testdriven/~4/oLj7z3pmF90" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/TestDriven.NET/default.aspx">TestDriven.NET</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/NUnit/default.aspx">NUnit</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/NCover/default.aspx">NCover</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/UnitTesting/default.aspx">UnitTesting</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/TypeMock/default.aspx">TypeMock</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/F_2300_/default.aspx">F#</category></item><item><title>TestDriven.Net 2.22: Support for Visual Studio 2010 Beta 1</title><link>http://weblogs.asp.net/nunitaddin/archive/2009/06/03/testdriven-net-2-22-support-for-visual-studio-2010-beta-1.aspx</link><pubDate>Wed, 03 Jun 2009 17:55:12 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7107267</guid><dc:creator>Jamie Cansdale</dc:creator><slash:comments>3</slash:comments><wfw:commentRss>http://weblogs.asp.net/nunitaddin/rsscomments.aspx?PostID=7107267</wfw:commentRss><comments>http://weblogs.asp.net/nunitaddin/archive/2009/06/03/testdriven-net-2-22-support-for-visual-studio-2010-beta-1.aspx#comments</comments><description>&lt;p&gt;I’ve just &lt;a href="http://www.testdriven.net/download.aspx"&gt;uploaded&lt;/a&gt; a new version of &lt;a href="http://www.testdriven.net/"&gt;TestDriven.Net&lt;/a&gt; (2.22 RTM) which is compatible with &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=75cbcbcd-b0e8-40ea-adae-85714e8984e3&amp;amp;displaylang=en"&gt;Visual Studio 2010 Beta 1&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Unfortunately this support is somewhat limited because command bar extensibility has been disabled in VS 2010 Beta 1. All is not lost however because the commands still work when executed using a shortcut key. This is how many power users invoke TestDriven.Net already and can make for even less friction when executing your tests.&lt;/p&gt;  &lt;p&gt;To enable support for VS 2010 Beta1 you will need to select ‘Complete’ when installing TestDriven.Net. (Support for VS 2010 currently disabled when doing a ‘Typical’ install.)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/nunitaddin/setup_qL0fHA.png"&gt;&lt;img title="setup" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="400" alt="setup" src="http://weblogs.asp.net/blogs/nunitaddin/setup_thumb_jERu/g.png" width="513" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;You can use the ‘Environment &amp;gt; Keyboard’ pane on the ‘Options…’ dialog to assign new shortcut keys. To list all of TestDriven.Net’s commands, simply: “Show commands containing: testdriven”.&lt;/p&gt;  &lt;p&gt;You will probably want to assign shortcuts for the following commands:&lt;/p&gt;  &lt;p&gt;TestDriven.NET.RunTests: Run Test(s)   &lt;br /&gt;TestDriven.NET.Debugger: Test With &amp;gt; Debugger    &lt;br /&gt;TestDriven.NET.RerunTests: Repeat Test Run    &lt;br /&gt;TestDriven.NET.Reflector: Go To Reflector    &lt;br /&gt;TestDriven.NET.ApplicationNUnit25: Test With &amp;gt; NUnit 2.5 (start the NUnit GUI)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/nunitaddin/shortcut_FF/Gtg.png"&gt;&lt;img title="shortcut" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="299" alt="shortcut" src="http://weblogs.asp.net/blogs/nunitaddin/shortcut_thumb_NFqo6g.png" width="513" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Alternatively I’ve created a .vssettings &lt;a href="http://www.testdriven.net/downloads/TestDrivenVS2010.zip"&gt;file&lt;/a&gt; you can import using ‘Tools &amp;gt; Import and Export Settings…’.&lt;/p&gt;  &lt;p&gt;The keyboard assignments are as follows:&lt;/p&gt;  &lt;p&gt;Alt+T: Run Test(s)   &lt;br /&gt;Alt+R: Repeat Test Run    &lt;br /&gt;Alt+D: Test With Debugger    &lt;br /&gt;Alt+E: Go To Reflector    &lt;br /&gt;Alt+N: Launch NUnit 2.5    &lt;br /&gt;Alt+V: Test Inside VS    &lt;br /&gt;Alt+B: Build Current Project&lt;/p&gt;  &lt;p&gt;Once imported I’m using Alt+T to execute an ‘Ad hoc’ test from inside the ‘go’ method.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/nunitaddin/test1_vqDKoQ.png"&gt;&lt;img title="test1" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="354" alt="test1" src="http://weblogs.asp.net/blogs/nunitaddin/test1_thumb_qFyplQ.png" width="629" border="0" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;You can download TestDriven.Net 2.22 RTM from &lt;a href="http://www.testdriven.net/download.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7107267" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/testdriven/~4/N4Frdj_LWQE" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/TestDriven.NET/default.aspx">TestDriven.NET</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/NUnit/default.aspx">NUnit</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/UnitTesting/default.aspx">UnitTesting</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/Setup/default.aspx">Setup</category></item><item><title>TestDriven.Net 2.21: Now includes NUnit 2.5 RC</title><link>http://weblogs.asp.net/nunitaddin/archive/2009/04/30/testdriven-net-2-21-now-includes-nunit-2-5-rc.aspx</link><pubDate>Thu, 30 Apr 2009 16:05:29 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7068950</guid><dc:creator>Jamie Cansdale</dc:creator><slash:comments>4</slash:comments><wfw:commentRss>http://weblogs.asp.net/nunitaddin/rsscomments.aspx?PostID=7068950</wfw:commentRss><comments>http://weblogs.asp.net/nunitaddin/archive/2009/04/30/testdriven-net-2-21-now-includes-nunit-2-5-rc.aspx#comments</comments><description>&lt;h3&gt;Support for NUnit 2.5 RC&lt;/h3&gt;  &lt;p&gt;A couple of days ago, &lt;a href="http://nunit.com/blogs/"&gt;Charlie Poole&lt;/a&gt; announced that the first &lt;a href="http://nunit.org/?p=releaseNotes&amp;amp;r=2.5"&gt;NUnit 2.5&lt;/a&gt; release candidate is now uploaded. I’ve hurried to get a new version of &lt;a href="http://www.testdriven.net/"&gt;TestDriven.Net&lt;/a&gt; with support for this version ready. I’m happy to announce that TestDriven.Net 2.21 Beta (which includes NUnit 2.5 RC) is now available for &lt;a href="http://www.testdriven.net/download.aspx"&gt;download&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;img title="TestWithNUnit25" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="274" alt="TestWithNUnit25" src="http://weblogs.asp.net/blogs/nunitaddin/TestWithNUnit25_WjiaRw.png" width="460" border="0" /&gt;&lt;/p&gt;  &lt;p&gt;This is a major NUnit release with lots of new features. Here is the list that was &lt;a href="http://groups.google.com/group/nunit-discuss/browse_thread/thread/2acc1c57d616070e?hl=en"&gt;posted&lt;/a&gt; on the NUnit mailing list:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Parameterized (data-driven) tests are supported, with features similar to those found in mbUnit and xUnit.net. &lt;/li&gt;    &lt;li&gt;Theories - as used in JUnit- are supported fully, including support for Assume.That. &lt;/li&gt;    &lt;li&gt;New attributes allow the specifying the thread and apartment state requirements of a test. &lt;/li&gt;    &lt;li&gt;Exception handling can now be moved into the test code using Assert.Throws or the Throws.Exception syntax. &lt;/li&gt;    &lt;li&gt;Test methods and fixtures may now be generic and many asserts and constraint expressions now support generic syntax. &lt;/li&gt;    &lt;li&gt;Many constraints now permit substitution of a user-defined comparison algorithm through the Using modifier. Lambda expressions are supported. &lt;/li&gt;    &lt;li&gt;Test execution may now take place in a separate process for better isolation. &lt;/li&gt;    &lt;li&gt;Tests may be loaded and executed using a selected runtime version. &lt;/li&gt;    &lt;li&gt;Tests, setup methods, teardown methods and data sources may be static if desired. If there are no instance methods, then NUnit doesn't need to construct your test class. &lt;/li&gt;    &lt;li&gt;Source code is displayed in the gui, where available. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Charlie has also posted a top &lt;a href="http://nunit.com/blogs/?p=66"&gt;10 reasons try NUnit 2.5&lt;/a&gt;.&lt;/p&gt;  &lt;h3&gt;Improved x86 / 32-bit support on a 64-bit OS&lt;/h3&gt;  &lt;p&gt;This version also contains improved support for running tests in a 32-bit process. To configure a test project for 32-bit execution, simply select ‘x86’ as the ‘Platform target’ in the project properties. After doing this, the ‘Run Test(s)’ and ‘Test With &amp;gt; NUnit 2.5’ commands will execute your tests in a 32-bit process (this doesn’t work for NUnit 2.4). By default projects configured for ‘Any CPU’ will execute tests in a 64-bit process (unless you’re testing with NCover, Team Coverage or dotTrace).&lt;/p&gt;  &lt;p&gt;&lt;img title="x86" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="276" alt="x86" src="http://weblogs.asp.net/blogs/nunitaddin/x86_jaY4cw.png" width="604" border="0" /&gt;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;h3&gt;Experimental Visual Studio 2010 support&lt;/h3&gt;  &lt;p&gt;TestDriven.Net was working with the Visual Studio 2010 PDC CTP version. Unfortunately I’ve had less luck with more recent pre-Beta versions (Visual Studio was crashing). You can try the experimental support by choosing ‘Custom’ setup and enabling the ‘Visual Studio 2010’ feature. There is a &lt;em&gt;chance&lt;/em&gt; this will be working again when the Visual Studio 2010 Beta is released.&lt;/p&gt;  &lt;p&gt;&lt;img title="vs2010" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="298" alt="vs2010" src="http://weblogs.asp.net/blogs/nunitaddin/vs2010_9qxm8g.png" width="512" border="0" /&gt; &lt;/p&gt;  &lt;h3&gt;Trace/debug messages now appear in ‘Debug’ pane&lt;/h3&gt;  &lt;p&gt;When stepping through code started from TestDriven.Net, you may have noticed that trace/debug messages appeared in the ‘Test’ pane but not the ‘Debug’ pane. Trace/debug diagnostic messages will only appear in the ‘Test’ pane when targeting specific tests, but not when executing all tests in a project / solution.&lt;/p&gt;  &lt;h3&gt;Release Notes &amp;amp; Download&lt;/h3&gt;  &lt;p&gt;Here are links to the TestDriven.Net &lt;a href="http://www.testdriven.net/ReleaseNotes.html"&gt;release notes&lt;/a&gt; and &lt;a href="http://www.testdriven.net/download.aspx"&gt;download&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Don’t hesitate to contact &lt;a href="http://www.testdriven.net/contact.aspx"&gt;me&lt;/a&gt; or the NUnit &lt;a href="http://groups.google.com/group/nunit-discuss/"&gt;team&lt;/a&gt; if you find any issues with this release.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7068950" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/testdriven/~4/ehW_e5fgg7A" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/TestDriven.NET/default.aspx">TestDriven.NET</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/NUnit/default.aspx">NUnit</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/UnitTesting/default.aspx">UnitTesting</category></item><item><title>TestDriven.Net 2.20: Improved NCover Integration</title><link>http://weblogs.asp.net/nunitaddin/archive/2009/04/21/testdriven-net-2-20-improved-ncover-integration.aspx</link><pubDate>Tue, 21 Apr 2009 15:01:54 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7053374</guid><dc:creator>Jamie Cansdale</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://weblogs.asp.net/nunitaddin/rsscomments.aspx?PostID=7053374</wfw:commentRss><comments>http://weblogs.asp.net/nunitaddin/archive/2009/04/21/testdriven-net-2-20-improved-ncover-integration.aspx#comments</comments><description>&lt;p&gt;In the latest &lt;a href="http://www.testdriven.net/download.aspx"&gt;release&lt;/a&gt; of &lt;a href="http://www.testdriven.net/"&gt;TestDriven.Net&lt;/a&gt;, you’ll find much improved integration with all versions of &lt;a href="http://www.ncover.com/"&gt;NCover&lt;/a&gt;:&lt;/p&gt;  &lt;h3&gt;Support for 64-bit Windows&lt;/h3&gt;  &lt;p&gt;‘Test With &amp;gt; Coverage’ now works on 64-bit versions of Windows. In previous versions this could be made to work by compiling your test project for x86. The new version will automatically execute your tests in a 32-bit process if a 64-bit version of NCover can’t be found. (There is similar 64-bit Windows support for &lt;a href="http://www.jetbrains.com/profiler/"&gt;dotTrace&lt;/a&gt; and &lt;a href="http://weblogs.asp.net/nunitaddin/archive/2006/11/08/Driving-MSTest-and-Team-Coverage-using-TestDriven.NET.aspx"&gt;Team Coverage&lt;/a&gt;)&lt;/p&gt;  &lt;h3&gt;No more ‘Reload coverage file?’ dialog&lt;/h3&gt;  &lt;p&gt;NCoverExplorer 2.1 &amp;amp; 3.0 will no longer prompt to reload the coverage file. The coverage report will automatically refresh when new data is available. If you’re using NCover 3.0.18 or higher, you won’t be prompted to save a ‘New Project’ when you close NCoverExplorer.&lt;/p&gt;  &lt;h3&gt;Automatic assembly filtering&lt;/h3&gt;  &lt;p&gt;If you’re using NCover 3.0, only assemblies that have a corresponding PDB file will appear in the ‘Explorer’ window. I’m hoping this is a good alternative to explicitly naming assemblies that shouldn’t appear in the coverage support.&lt;/p&gt;  &lt;h3&gt;Support for Typemock Isolator&lt;/h3&gt;  &lt;p&gt;You can now execute ‘Test With &amp;gt; Coverage’ with NCover 3.0 and Typemock Isolator installed. (Previous versions would fail with the error: ‘Couldn't find TypeMock profiler name for NCover 3.0’.)&lt;/p&gt;  &lt;h3&gt;Recommended Versions of NCover &amp;amp; Typemock&lt;/h3&gt;  &lt;p&gt;If you have a commercial license for &lt;a href="http://www.ncover.com/"&gt;NCover&lt;/a&gt;, make sure you’re using NCover 3.0.18 or later. If you’re using &lt;a href="http://www.typemock.com/"&gt;Typemock Isolator&lt;/a&gt;, I recommend you use at least version 5.3.0. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;If you’d like more timely updates on new releases, you can find me on twitter &lt;/em&gt;&lt;a href="http://twitter.com/jcansdale"&gt;&lt;em&gt;here&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7053374" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/testdriven/~4/BwDTKgaK79s" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/TestDriven.NET/default.aspx">TestDriven.NET</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/NCoverExplorer/default.aspx">NCoverExplorer</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/NCover/default.aspx">NCover</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/UnitTesting/default.aspx">UnitTesting</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/TypeMock/default.aspx">TypeMock</category></item><item><title>Moq.me 3.0 RTM</title><link>http://weblogs.asp.net/nunitaddin/archive/2009/03/07/moq-me-3-0-rtm.aspx</link><pubDate>Sat, 07 Mar 2009 11:11:19 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6943800</guid><dc:creator>Jamie Cansdale</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://weblogs.asp.net/nunitaddin/rsscomments.aspx?PostID=6943800</wfw:commentRss><comments>http://weblogs.asp.net/nunitaddin/archive/2009/03/07/moq-me-3-0-rtm.aspx#comments</comments><description>&lt;p&gt;Congratulations &lt;a href="http://www.clariusconsulting.net/"&gt;Kzu&lt;/a&gt; on the &lt;a href="http://www.clariusconsulting.net/blogs/kzu/archive/2009/03/05/120009.aspx"&gt;release&lt;/a&gt; of Moq 3.0 RTM!&lt;/p&gt;  &lt;p&gt;You can get it here &lt;a href="http://moq.me/get"&gt;http://moq.me/&lt;/a&gt; (I love the domain name).&lt;/p&gt;  &lt;p&gt;There’s a fascinating &lt;a href="http://ayende.com/Blog/archive/2007/12/19/Moq-Mocking-in-C-3.0.aspx"&gt;back and forth&lt;/a&gt; between &lt;a href="http://www.ayende.com/Blog/"&gt;Ayende&lt;/a&gt; and &lt;a href="http://www.clariusconsulting.net/kzu"&gt;Daniel&lt;/a&gt; (kzu) where they discuss different ways to use mock frameworks. Ayende (who developed &lt;a href="http://ayende.com/projects/rhino-mocks.aspx"&gt;Rhino Mocks&lt;/a&gt;) is more in favor of interaction testing than Daniel who is a state/classic TDDer.&lt;/p&gt;  &lt;p&gt;Recently I’ve been trying to separate my tests into unit tests, interaction tests and integration tests. For interaction testing I’ve been using &lt;a href="http://www.typemock.com/"&gt;Typemock Isolator&lt;/a&gt;, which allows me to break a few runes in order to exercise some hard to test code. &lt;a href="http://moq.me/"&gt;Moq&lt;/a&gt; is looking very interesting as a mock framework to use with my traditional unit tests.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6943800" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/testdriven/~4/1hyeC3E7x0k" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/UnitTesting/default.aspx">UnitTesting</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/TypeMock/default.aspx">TypeMock</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/Moq/default.aspx">Moq</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/Rhino+Mocks/default.aspx">Rhino Mocks</category></item><item><title>TestDriven.Net 2.19: Release Notes</title><link>http://weblogs.asp.net/nunitaddin/archive/2009/02/09/testdriven-net-2-19-release-notes.aspx</link><pubDate>Mon, 09 Feb 2009 17:10:21 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6895833</guid><dc:creator>Jamie Cansdale</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://weblogs.asp.net/nunitaddin/rsscomments.aspx?PostID=6895833</wfw:commentRss><comments>http://weblogs.asp.net/nunitaddin/archive/2009/02/09/testdriven-net-2-19-release-notes.aspx#comments</comments><description>&lt;h3&gt;Which Test Runner?&lt;/h3&gt;  &lt;p&gt;The latest version of &lt;a href="http://www.testdriven.net/"&gt;TestDriven.Net&lt;/a&gt; will display the name of the test runner used in the test results summary. If the target project doesn’t reference a known test framework assembly, TestDriven.Net will use the ‘Ad hoc’ test runner to quickly execute the target method.&lt;/p&gt;  &lt;p&gt;&lt;img title="TestRunnerName" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="293" alt="TestRunnerName" src="http://weblogs.asp.net/blogs/nunitaddin/TestRunnerName_2Zrfkw.png" width="473" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;You can see the above method has been executed using the ‘Ad hoc’ test runner. If this happens when targeting real unit test, the chances are a test runner to handle the target test type or version hasn’t been registered.&lt;/p&gt;  &lt;h3&gt;NUnit 2.5 Beta 2 Support&lt;/h3&gt;  &lt;p&gt;This version includes support for &lt;a href="http://nunit.com/index.php?p=releaseNotes&amp;amp;r=2.5"&gt;NUnit 2.5 Beta 2&lt;/a&gt;. The previous version had a bug that caused tests that threw an exception to show as skipped rather than failed.&lt;/p&gt;  &lt;h3&gt;Test With &amp;gt; .NET 1.1 on a 64-bit OS&lt;/h3&gt;  &lt;p&gt;If the .NET 1.1 SDK is installed and you’re using Visual Studio 2005, you will have the option to ‘Test With &amp;gt; .NET 1.1’. Under the covers this functionality builds your project using &lt;a href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=MSBee"&gt;MSBee&lt;/a&gt; before executing your tests using .NET 1.1. This will now work when executed on a 64-bit OS.&lt;/p&gt;  &lt;p&gt;I’d be interested to hear if there’s any demand for this feature on Visual Studio 2008. &lt;/p&gt;  &lt;h3&gt;Visual Studio 2003 Support&lt;/h3&gt;  &lt;p&gt;This version once again works on Visual Studio 2003. Only one person noticed this was broken on the previous beta. Are there many projects still being developed using Visual Studio 2003? I’m using MSBee for all my legacy .NET 1.1 support.&lt;/p&gt;  &lt;h3&gt;Running xUnit tests on a 64-bit OS&lt;/h3&gt;  &lt;p&gt;Some people have been experiencing problems registering the &lt;a href="http://www.codeplex.com/xunit"&gt;xUnit&lt;/a&gt; test runner on a 64-bit OS. It turns out the problem was due to xUnit sometimes registering itself under HKLM and sometimes under HKCU depending on what was previously installed. If you’re experiencing this problem, try re-registering xUnit (using xunit.installer.exe) after installing this version.&lt;/p&gt;  &lt;h3&gt;Clear Error List Before Build&lt;/h3&gt;  &lt;p&gt;Failed tests will now be removed from the error list when a new build starts. This prevents failed tests from becoming mixed up with build errors. I think this is the correct default behavior.&lt;/p&gt;  &lt;h3&gt;Download&lt;/h3&gt;  &lt;p&gt;You can find the release notes &lt;a href="http://www.testdriven.net/downloads/ReleaseNotes.html"&gt;here&lt;/a&gt; and download &lt;a href="http://www.testdriven.net/download.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6895833" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/testdriven/~4/RCoJRoX9G78" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/TestDriven.NET/default.aspx">TestDriven.NET</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/NUnit/default.aspx">NUnit</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/xUnit/default.aspx">xUnit</category></item><item><title>Improved support for MbUnit, xUnit and Gallio</title><link>http://weblogs.asp.net/nunitaddin/archive/2008/12/03/improved-support-for-mbunit-xunit-and-gallio.aspx</link><pubDate>Wed, 03 Dec 2008 19:58:42 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6764536</guid><dc:creator>Jamie Cansdale</dc:creator><slash:comments>4</slash:comments><wfw:commentRss>http://weblogs.asp.net/nunitaddin/rsscomments.aspx?PostID=6764536</wfw:commentRss><comments>http://weblogs.asp.net/nunitaddin/archive/2008/12/03/improved-support-for-mbunit-xunit-and-gallio.aspx#comments</comments><description>&lt;p&gt;The main focus of the &lt;a href="http://www.testdriven.net/"&gt;TestDriven.Net&lt;/a&gt; 2.18 &lt;a href="http://www.testdriven.net/download.aspx"&gt;release&lt;/a&gt; has been to improve support for test runner plug-ins in general (not just &lt;a href="http://nunit.org/"&gt;NUnit&lt;/a&gt;). If you’re using &lt;a href="http://www.codeplex.com/xunit"&gt;xUnit&lt;/a&gt;, &lt;a href="http://www.mbunit.com/"&gt;MbUnit&lt;/a&gt; or &lt;a href="http://www.gallio.org/"&gt;Gallio&lt;/a&gt; – I recommend you upgrade to this version.&lt;/p&gt;  &lt;h3&gt;Automatic support for 64-bit machines&lt;/h3&gt;  &lt;p&gt;The registry layout on 64-bit machines is plain weird and full of pitfalls for the unwary. The registry layout is different depending on whether you’re installing under HKLM or HKCU. Under ‘HKLM’ the ‘SOFTWARE’ key is split and test runner plug-ins needed to be registered twice in order to work in both 32 and 64-bit processes. There is no such split under ‘HKCU’ and plug-ins installed there only needed to be registered once.&lt;/p&gt;  &lt;p&gt;This created the unfortunate situation where plug-ins installed for ‘all users’ wouldn’t work when running in a 64-bit process, but plug-ins installed ‘just for me’ would work fine. Rather than expect plug-in developers to deal with this weirdness, I’ve made some changes to automatically support plug-ins that aren’t 64-bit aware.&lt;/p&gt;  &lt;p&gt;If you have an assembly that needs to work on 32 and 64-bit machines, you may find the following snippet useful:&lt;/p&gt;  &lt;pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; RegistryKey OpenSoftwareKey(&lt;span style="color: #0000ff"&gt;bool&lt;/span&gt; hklm, &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; name)
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;    {
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;        &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; fullName = @&amp;quot;&lt;span style="color: #8b0000"&gt;SOFTWARE&lt;/span&gt;&amp;quot;;
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;        &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (hklm)
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;        {
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;            &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (Marshal.SizeOf(&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(IntPtr)) == 8)
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;            {
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;                fullName += @&amp;quot;&lt;span style="color: #8b0000"&gt;\Wow6432Node&lt;/span&gt;&amp;quot;;
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;            }
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;            &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; Registry.LocalMachine.OpenSubKey(fullName + @&amp;quot;&lt;span style="color: #8b0000"&gt;\&lt;/span&gt;&amp;quot; + name);
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;        }
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;        &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; Registry.CurrentUser.OpenSubKey(fullName + @&amp;quot;&lt;span style="color: #8b0000"&gt;\&lt;/span&gt;&amp;quot; + name);
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;    }
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;The following ad-hoc test will display TestDriven.Net’s install directory (assuming TestDriven.Net is installed ‘for all users’):&lt;/p&gt;

&lt;pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;    &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; test()
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;    {
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;        &lt;span style="color: #0000ff"&gt;using&lt;/span&gt;(var key = OpenSoftwareKey(&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;, @&amp;quot;&lt;span style="color: #8b0000"&gt;MutantDesign\TestDriven.NET&lt;/span&gt;&amp;quot;))
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;        {
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;            Console.WriteLine(key.GetValue(&amp;quot;&lt;span style="color: #8b0000"&gt;InstallDir&lt;/span&gt;&amp;quot;));
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;        }
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;    }&lt;/pre&gt;&lt;/pre&gt;

&lt;h3&gt;Better support for ah-hoc tests &lt;/h3&gt;

&lt;p&gt;In previous versions of TestDriven.Net, a test runner plug-in was required to explicitly signal when none of its tests were found for execution. This would give other test runners (such as the ad-hoc test runner) a chance to handle the test. Unfortunately most test runners have been signaling a successful test run when tests were found but none were targeted.&lt;/p&gt;

&lt;p&gt;I’ve changed it so the ad-hoc test runner will automatically get a chance to execute if no tests were executed and the test runner plug-in indicated a successful test run. The upshot of this is that you can now have ad-hoc side-by-side with MbUnit or xUnit tests.&lt;/p&gt;

&lt;p&gt;If you’re using &lt;a href="http://www.codeplex.com/xunit"&gt;xUnit&lt;/a&gt;, try doing ‘Run Test(s)’ on each of the following methods:&lt;/p&gt;

&lt;pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;    [Fact]
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; TestMe()
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;    {
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;        Console.WriteLine(&amp;quot;&lt;span style="color: #8b0000"&gt;Console output isn't displayed when using xUnit&lt;/span&gt;&amp;quot;);
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;        Assert.True(&lt;span style="color: #0000ff"&gt;false&lt;/span&gt;, &amp;quot;&lt;span style="color: #8b0000"&gt;Comment out [Fact] and run as ad-hoc test! ;)&lt;/span&gt;&amp;quot;);
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;    }
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;    &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; hello()
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;    {
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;        Trace.WriteLine(&amp;quot;&lt;span style="color: #8b0000"&gt;Hello, World!&lt;/span&gt;&amp;quot;);
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;    }
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;    &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; dump()
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;    {
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;        Trace.WriteLine(AppDomain.CurrentDomain, &amp;quot;&lt;span style="color: #8b0000"&gt;_verbose&lt;/span&gt;&amp;quot;);
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;    }&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;(ad-hoc tests should work side-by-side with all other test framework methods as well)&lt;/p&gt;

&lt;h3&gt;Improved performance when executing with Gallio / MbUnit v3&lt;/h3&gt;

&lt;p&gt;&lt;a href="http://www.gallio.org/"&gt;Gallio&lt;/a&gt; is a test runner that supports many different test types (MbUnit, xUnit, NUnit, MSTest and more). It has its own plug-in architecture and it doesn’t use the default TestDriven.Net app domain test isolation. This makes Gallio very flexible, but it also meant it wasn’t appropriate to setup and tear down the Gallio engine for each test run.&lt;/p&gt;

&lt;p&gt;I’ve made some changes to allow Gallio to stay resident in the test process. This has significantly improved performance (especially for short test runs). If you’re using Gallio/MbUnit v3, try upgrading to &lt;a href="http://www.gallio.org/Downloads.aspx"&gt;Gallio v3.0.5 build 546&lt;/a&gt; and see how much of a different it makes.&lt;/p&gt;

&lt;h3&gt;Feedback…&lt;/h3&gt;

&lt;p&gt;There have been lots of other changes which you can find in the &lt;a href="http://www.testdriven.net/downloads/releasenotes.html"&gt;release notes&lt;/a&gt;. If you notice any new issues, please don’t hesitate to let &lt;a href="http://www.testdriven.net/contact.aspx"&gt;me&lt;/a&gt; know!&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6764536" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/testdriven/~4/uFgSR1BbltQ" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/TestDriven.NET/default.aspx">TestDriven.NET</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/UnitTesting/default.aspx">UnitTesting</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/MbUnit/default.aspx">MbUnit</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/xUnit/default.aspx">xUnit</category></item><item><title>TestDriven.Net Options Pane</title><link>http://weblogs.asp.net/nunitaddin/archive/2008/12/03/testdriven-net-options-pane.aspx</link><pubDate>Wed, 03 Dec 2008 12:26:03 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6763868</guid><dc:creator>Jamie Cansdale</dc:creator><slash:comments>8</slash:comments><wfw:commentRss>http://weblogs.asp.net/nunitaddin/rsscomments.aspx?PostID=6763868</wfw:commentRss><comments>http://weblogs.asp.net/nunitaddin/archive/2008/12/03/testdriven-net-options-pane.aspx#comments</comments><description>&lt;p&gt;&lt;img title="options" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="432" alt="options" src="http://weblogs.asp.net/blogs/nunitaddin/options_czIcvg.png" width="751" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;In the latest version of TestDriven.Net you will find a new options pane. The options are as follows:&lt;/p&gt;  &lt;h3&gt;Hide trace/debug output when running all tests in project/solution&lt;/h3&gt;  &lt;p&gt;In the past this setting has always been hardwired to true. It means you can add trace information to a test without cluttering up the ‘Test’ output pane when all tests are executed. An alternative way to ensure a message will always appear in the output is to use ‘Console.WriteLine’ rather than ‘Trace.WriteLine’. This also means the verbose &lt;a href="http://www.gallio.org/"&gt;Gallio&lt;/a&gt;/&lt;a href="http://www.mbunit.com/"&gt;MbUnit&lt;/a&gt; test run output will show up when executing all tests in a project.&lt;/p&gt;  &lt;h3&gt;Cache test process between test runs&lt;/h3&gt;  &lt;p&gt;By default the external test process will be cached when the ‘Run Test(s)’ command is used. This process appears in the tool tray as a rocket icon which can be used to kill the process. This is fine unless one of your tests starts leaking leaking native resources (such as leaving open a file handle). The best solution is to fix the resource leak, but you now have to option to work around the issue by killing the test process at the end of each test run. This can be useful if the resource leak is in a 3rd party DLL which can’t be easily be changed.&lt;/p&gt;  &lt;h3&gt;Categories&lt;/h3&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;This option supports the most common use of test categories; you can choose to include or exclude a selection of categories. This is useful if you want to exclude long running tests or if your machine isn’t configured to execute integration tests. This feature is currently only supported by the NUnit runner that comes with TestDriven.Net, but I believe it will be supported by a a future version of &lt;a href="http://www.gallio.org/"&gt;Gallio&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;You can specify your NUnit test categories like this:&lt;/p&gt;  &lt;pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;    [Test, Category(&amp;quot;&lt;span style="color: #8b0000"&gt;LongRunning&lt;/span&gt;&amp;quot;)]
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; LongRunning()
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;    {
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;        Thread.Sleep(10000);
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;    }
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;There are lots of features in TestDriven.Net that &lt;em&gt;could&lt;/em&gt; be exposed as options. I’ll try to resist this temptation as much as possible, but I’m sure a few more will creep in. ;-)&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6763868" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/testdriven/~4/pbWwlZMRsNw" height="1" width="1"/&gt;</description></item><item><title>TestDriven.NET 2.18 + NUnit 2.5 Beta</title><link>http://weblogs.asp.net/nunitaddin/archive/2008/12/02/testdriven-net-2-18-nunit-2-5-beta.aspx</link><pubDate>Tue, 02 Dec 2008 22:15:17 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6763198</guid><dc:creator>Jamie Cansdale</dc:creator><slash:comments>3</slash:comments><wfw:commentRss>http://weblogs.asp.net/nunitaddin/rsscomments.aspx?PostID=6763198</wfw:commentRss><comments>http://weblogs.asp.net/nunitaddin/archive/2008/12/02/testdriven-net-2-18-nunit-2-5-beta.aspx#comments</comments><description>&lt;p&gt;I’ve just &lt;a href="http://www.testdriven.net/download.aspx"&gt;uploaded&lt;/a&gt; a new version of &lt;a href="http://www.testdriven.net/"&gt;TestDriven.Net&lt;/a&gt; with support for &lt;a href="http://nunit.com/index.php?p=releaseNotes&amp;amp;r=2.5"&gt;NUnit 2.5 Beta&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;There’s a menagerie of weird and wonderful new attributes to choose from in this point release of NUnit. &lt;a href="http://blog.benhall.me.uk/"&gt;Ben Hall&lt;/a&gt; has &lt;a href="http://blog.benhall.me.uk/2008/08/taking-look-at-nunit-25-alpha-3.html"&gt;written&lt;/a&gt; a good summary of the Alpha version and I’m sure &lt;a href="http://blogs.nunit.com/"&gt;Charlie Poole&lt;/a&gt; will be blogging about the Beta in the coming days.&lt;/p&gt;  &lt;p&gt;Here’s a quick summary of a few new attributes:&lt;/p&gt;  &lt;p&gt;Generic test fixtures can be used when you need to run a batch of tests against few different implementations of a type. In the past something similar could be achieved by having an abstract base fixture and extending it for each implementation you needed to test. By using a generic fixture you keep all your test code in a single class and I think it’s more expressive.&lt;/p&gt;  &lt;pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;    [TestFixture(&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(ArrayList))]
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;    [TestFixture(&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(List&amp;lt;&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;&amp;gt;))]
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; IListTests&amp;lt;TList&amp;gt; where TList : IList, &lt;span style="color: #0000ff"&gt;new&lt;/span&gt;()
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;    {
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;        [Test]
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Count()
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;        {
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;            IList list = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; TList { 1, 2, 3 };
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;            Assert.AreEqual(3, list.Count);
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;        }
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;    }&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;The ‘TestCase’ attribute is similar to MbUnit’s ‘RowTest’. With this attribute you transform a single test method into multiple test cases. You can also define an expected return result, but I’d advise against using this if you want a stack trace when your test fails. It’s better to explicitly define the assert inside the test method.&lt;/p&gt;

&lt;pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; TestCases
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;    {
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;        [TestCase(4, 2, 2)]
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;        [TestCase(2, 1, 1)]
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;        [TestCase(5, 2, 3)]
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Add(&lt;span style="color: #0000ff"&gt;int&lt;/span&gt; answer, &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; a, &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; b)
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;        {
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;            Assert.AreEqual(answer, a + b);
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;        }
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;    }
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;In previous versions of NUnit you could specify which threading model your tests required by adding some XML to your test project’s App.config file. You can now specify this directly on the test that needs it using the RequiresMTA/STA attributes.&lt;/p&gt;

&lt;pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;    [Test, RequiresMTA]
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; MTA()
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;    {
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;        Assert.AreEqual(ApartmentState.MTA,
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;            Thread.CurrentThread.ApartmentState);
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;    }
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;    [Test, RequiresSTA]
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; STA()
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;    {
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;        Assert.AreEqual(ApartmentState.STA,
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;            Thread.CurrentThread.ApartmentState);
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;    }
&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;Lastly the ‘TestFixture’ attribute is no longer required and test methods are allowed to be static. This means NUnit can now be used in a natural way for testing F# code. Note, you will need to have &amp;quot;Other Flags&amp;quot; set to &amp;quot;--optimize+ notailcalls&amp;quot; in your project’s build properties if you want to see a stack trace on any failed asserts.&lt;/p&gt;

&lt;pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;    #light
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;    open NUnit.Framework
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;    [&amp;lt;Test&amp;gt;]
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;    let fsharp() = 
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;        Assert.AreEqual(2 + 2, 4)
&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Update&lt;/em&gt;: I’ve tried to highlight a few features in NUnit 2.5 which can be used to make your unit tests clearer. &lt;a href="http://www.xerxesb.com/"&gt;Xerxes Battiwalla&lt;/a&gt; has written a &lt;a href="http://www.xerxesb.com/2008/nunit-25-beta-now-supported-in-testdrivennet/"&gt;post&lt;/a&gt; about &lt;strong&gt;Assert.Throws&amp;lt;T&amp;gt;()&lt;/strong&gt; which also falls into this category.&lt;/p&gt;

&lt;pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;    [Test]
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; CreateDomain_Null()
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;    {
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #ffffff"&gt;        Assert.Throws&amp;lt;ArgumentNullException&amp;gt;(() =&amp;gt; AppDomain.CreateDomain(&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;));
&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; background-color: #fbfbfb"&gt;    }&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;For more information see the TestDriven.Net 2.18 &lt;a href="http://www.testdriven.net/downloads/releasenotes.html"&gt;release notes&lt;/a&gt; and the NUnit 2.5 &lt;a href="http://www.nunit.org/index.php?p=docHome&amp;amp;r=2.5"&gt;documentation&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6763198" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/testdriven/~4/J9ensxA7zSk" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/NUnitAddin/default.aspx">NUnitAddin</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/TestDriven.NET/default.aspx">TestDriven.NET</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/NUnit/default.aspx">NUnit</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/UnitTesting/default.aspx">UnitTesting</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/F_2300_/default.aspx">F#</category></item><item><title>Microsoft F# and TestDriven.Net 2.16</title><link>http://weblogs.asp.net/nunitaddin/archive/2008/10/10/microsoft-f-and-testdriven-net-2-16.aspx</link><pubDate>Fri, 10 Oct 2008 10:42:22 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6668521</guid><dc:creator>Jamie Cansdale</dc:creator><slash:comments>15</slash:comments><wfw:commentRss>http://weblogs.asp.net/nunitaddin/rsscomments.aspx?PostID=6668521</wfw:commentRss><comments>http://weblogs.asp.net/nunitaddin/archive/2008/10/10/microsoft-f-and-testdriven-net-2-16.aspx#comments</comments><description>&lt;p&gt;Now that F# is being officially &lt;a href="http://blogs.msdn.com/somasegar/archive/2007/10/17/f-a-functional-programming-language.aspx"&gt;productized&lt;/a&gt;, I thought it was time to make it a first class citizen inside &lt;a href="http://www.testdriven.net"&gt;TestDriven.Net&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;When learning a new language I like to experiment by writing ad-hoc tests and viewing my code inside &lt;a href="http://www.red-gate.com/products/reflector/index.htm"&gt;.NET Reflector&lt;/a&gt;. My initial focus has been getting 'Go To Reflector' and the targeting of parameterless methods and properties working.&lt;/p&gt;  &lt;p&gt;You can get the latest release of F#, including the compiler, tools, and Visual Studio 2008 integration from the &lt;a href="http://msdn.microsoft.com/en-gb/fsharp/default.aspx"&gt;F# Developer Center&lt;/a&gt;. You will also need &lt;a href="http://www.testdriven.net/download.aspx"&gt;TestDriven.Net 2.16&lt;/a&gt; or above.&lt;/p&gt;  &lt;p&gt;The F# team has put together a collection of &lt;a href="http://code.msdn.microsoft.com/fsharpsamples"&gt;F# sample code&lt;/a&gt;. The samples come with their own 'F# Micro Samples Explorer' application, but they are also ideal for running as ad-hoc tests. In particular have a look at the 'beginners.fs' and 'intermediate.fs' modules in the 'Samples101' project.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="355" alt="Samples101" src="http://weblogs.asp.net/blogs/nunitaddin/WindowsLiveWriter/MicrosoftFandTestDriven.Net2.16_B2A3/Samples101_6.png" width="601" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;To view the code using .NET Reflector, simply right click inside a method, property, module or project and 'Go To Reflector'.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="397" alt="ReflectorFS" src="http://weblogs.asp.net/blogs/nunitaddin/WindowsLiveWriter/MicrosoftFandTestDriven.Net2.16_B2A3/ReflectorFS_3.png" width="602" border="0" /&gt;&lt;/p&gt;  &lt;p&gt;At the moment only parameterless methods and properties are supported. This is due to the way F# makes extensive use of type inferencing for parameters. Luckily it is parameterless methods and properties that it makes most sense to target for evaluation or running as unit tests. I'll talk more about &lt;a href="http://devhawk.net/2007/12/12/Practical+F+Parsing+Unit+Testing.aspx"&gt;unit&lt;/a&gt; &lt;a href="http://codebetter.com/blogs/matthew.podwysocki/archive/2008/04/25/xunit-net-goes-1-0-and-unit-testing-f.aspx"&gt;testing&lt;/a&gt; F# code in a future post.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="221" alt="property" src="http://weblogs.asp.net/blogs/nunitaddin/WindowsLiveWriter/MicrosoftFandTestDriven.Net2.16_B2A3/property_3.png" width="586" border="0" /&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6668521" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/testdriven/~4/qaWZCfLpPDc" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/TestDriven.NET/default.aspx">TestDriven.NET</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/UnitTesting/default.aspx">UnitTesting</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/F_2300_/default.aspx">F#</category></item><item><title>Hello, F#!</title><link>http://weblogs.asp.net/nunitaddin/archive/2008/10/09/hello-f.aspx</link><pubDate>Thu, 09 Oct 2008 17:41:33 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6667358</guid><dc:creator>Jamie Cansdale</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://weblogs.asp.net/nunitaddin/rsscomments.aspx?PostID=6667358</wfw:commentRss><comments>http://weblogs.asp.net/nunitaddin/archive/2008/10/09/hello-f.aspx#comments</comments><description>&lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="350" alt="hellofs" src="http://weblogs.asp.net/blogs/nunitaddin/WindowsLiveWriter/HelloF_114EB/hellofs_3.png" width="468" border="0" /&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This is a quick post to break my writers block.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.testdriven.net/download.aspx"&gt;download&lt;/a&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6667358" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/testdriven/~4/gjUEyAUwk2E" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/TestDriven.NET/default.aspx">TestDriven.NET</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/UnitTesting/default.aspx">UnitTesting</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/F_2300_/default.aspx">F#</category></item><item><title>Silverlight NUnit Projects</title><link>http://weblogs.asp.net/nunitaddin/archive/2008/05/01/silverlight-nunit-projects.aspx</link><pubDate>Thu, 01 May 2008 19:34:24 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6148240</guid><dc:creator>Jamie Cansdale</dc:creator><slash:comments>43</slash:comments><wfw:commentRss>http://weblogs.asp.net/nunitaddin/rsscomments.aspx?PostID=6148240</wfw:commentRss><comments>http://weblogs.asp.net/nunitaddin/archive/2008/05/01/silverlight-nunit-projects.aspx#comments</comments><description>&lt;p&gt;I've been doing some experiments to find out if it's possible to execute NUnit on a Silverlight project. I knew that Visual Studio 2008 and Expression Blend both host Silverlight for use in the designer window. It turns out that rather than host a separate instance of the CoreCLR, the designer simply loads the Silverlight assemblies into the host runtime. This simplifies the business of creating a compatible unit testing framework considerably!&lt;/p&gt;  &lt;p&gt;With a little bit twiddling, I've managed to tweak the 'nunit.framework' assembly so that it's compatible with Silverlight projects. In order for your tests to execute successfully, you also need to ensure that all Silverlight assemblies (except 'mscorlib') are set to 'Copy Local: True'. After this is done you can run, debug and even do code coverage on your Silverlight unit tests!&lt;/p&gt;  &lt;p&gt;Because creating one of these projects is a fiddle to set up, I've created &lt;a href="http://www.testdriven.net/downloads/SilverlightNUnitProject.zip"&gt;Silverlight NUnit Project&lt;/a&gt; template that does the work for you. To install the template simply open the 'SilverlightNUnitProject.vsi' file and ignore the unsigned content warning. Once installed, you will find it under the 'Visual C# / Silverlight' section of the 'New Project' dialog. You can download the template from &lt;a href="http://www.testdriven.net/downloads/SilverlightNUnitProject.zip"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/nunitaddin/WindowsLiveWriter/SilverlightNUnitProjects_12F53/RunTests_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="403" alt="SilverlightNUnitProject" src="http://weblogs.asp.net/blogs/nunitaddin/WindowsLiveWriter/SilverlightNUnitProjects_12F53/SilverlightNUnitProject_3.png" width="544" border="0" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;To execute one or more unit tests you should use 'Run Test(s)' rather than 'Test With &amp;gt; Silverlight'.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="242" alt="RunTests" src="http://weblogs.asp.net/blogs/nunitaddin/WindowsLiveWriter/SilverlightNUnitProjects_12F53/RunTests_3.png" width="555" border="0" /&gt;&lt;/p&gt;  &lt;p&gt;In summary you now have 3 options when testing Silverlight projects.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;For unit testing you can create a &lt;a href="http://www.testdriven.net/downloads/SilverlightNUnitProject.zip"&gt;Silverlight NUnit Project&lt;/a&gt; and use the usual &lt;a href="http://www.testdriven.net/"&gt;TestDriven.Net&lt;/a&gt; commands.&lt;/li&gt;    &lt;li&gt;For integration testing (within the context of a browser) you can use the &lt;a href="http://www.jeff.wilcox.name/2008/03/31/silverlight2-unit-testing/"&gt;Silverlight Testing Framework&lt;/a&gt;.&lt;/li&gt;    &lt;li&gt;For spelunking individual methods inside the CoreCLR you can use &lt;a href="http://weblogs.asp.net/nunitaddin/archive/2008/04/24/testdriven-net-2-13-support-for-silverlight-2-0-beta-1.aspx"&gt;'Test With &amp;gt; Silverlight&lt;/a&gt;'.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;I'd be interested to hear how you get on.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6148240" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/testdriven/~4/b93YU7f5F7I" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/TestDriven.NET/default.aspx">TestDriven.NET</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/NUnit/default.aspx">NUnit</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/UnitTesting/default.aspx">UnitTesting</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>TestDriven.Net 2.13: Support for NUnit 2.4.7</title><link>http://weblogs.asp.net/nunitaddin/archive/2008/04/28/testdriven-net-2-13-support-for-nunit-2-4-7.aspx</link><pubDate>Mon, 28 Apr 2008 14:01:36 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6139097</guid><dc:creator>Jamie Cansdale</dc:creator><slash:comments>31</slash:comments><wfw:commentRss>http://weblogs.asp.net/nunitaddin/rsscomments.aspx?PostID=6139097</wfw:commentRss><comments>http://weblogs.asp.net/nunitaddin/archive/2008/04/28/testdriven-net-2-13-support-for-nunit-2-4-7.aspx#comments</comments><description>&lt;p&gt;The latest &lt;a href="http://www.testdriven.net/download.aspx"&gt;release&lt;/a&gt; of &lt;a href="http://www.testdriven.net/"&gt;TestDriven.Net&lt;/a&gt; is now compiled against &lt;a href="http://nunit.com/index.php?p=releaseNotes&amp;amp;r=2.4.7"&gt;NUnit 2.4.7&lt;/a&gt;. This version of &lt;a href="http://www.nunit.com"&gt;NUnit&lt;/a&gt; includes &lt;a href="http://www.andreas-schlapsi.com/"&gt;Andreas Schlapsi&lt;/a&gt;'s popular RowTest extension. The RowTest attributes have been moved to the 'nunit.framework.extensions' assembly (which you can find here: &lt;em&gt;\Program Files\TestDriven.NET 2.0\NUnit\2.4\nunit.core.extensions.dll&lt;/em&gt;).&lt;/p&gt;  &lt;p&gt;Here is an example RowTest method that tests a prime number function:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="408" alt="RowTest" src="http://weblogs.asp.net/blogs/nunitaddin/WindowsLiveWriter/TestDriven.Net2.13SupportforNUnit2.4.7_E15B/RowTest_3.png" width="617" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;The prime number function might look like this:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="230" alt="IsPrime" src="http://weblogs.asp.net/blogs/nunitaddin/WindowsLiveWriter/TestDriven.Net2.13SupportforNUnit2.4.7_E15B/IsPrime_3.png" width="413" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;As you can see the intention of the test is very clear and there is no repetition. I've written more about parameterized unit tests &lt;a href="http://weblogs.asp.net/nunitaddin/archive/2007/12/17/testdriven-net-2-11-parameterized-nunit-tests.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6139097" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/testdriven/~4/QnGoH953fLs" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/TestDriven.NET/default.aspx">TestDriven.NET</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/NUnit/default.aspx">NUnit</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/UnitTesting/default.aspx">UnitTesting</category></item><item><title>TestDriven.Net 2.13: Support for Silverlight 2.0 Beta 1</title><link>http://weblogs.asp.net/nunitaddin/archive/2008/04/24/testdriven-net-2-13-support-for-silverlight-2-0-beta-1.aspx</link><pubDate>Thu, 24 Apr 2008 23:44:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6127601</guid><dc:creator>Jamie Cansdale</dc:creator><slash:comments>31</slash:comments><wfw:commentRss>http://weblogs.asp.net/nunitaddin/rsscomments.aspx?PostID=6127601</wfw:commentRss><comments>http://weblogs.asp.net/nunitaddin/archive/2008/04/24/testdriven-net-2-13-support-for-silverlight-2-0-beta-1.aspx#comments</comments><description>&lt;p&gt;I've just uploaded a &lt;a href="http://www.testdriven.net/download.aspx" mce_href="http://www.testdriven.net/download.aspx"&gt;new version&lt;/a&gt; of &lt;a href="http://www.testdriven.net" mce_href="http://www.testdriven.net"&gt;TestDriven.Net&lt;/a&gt; with support for &lt;a href="http://silverlight.net/default.aspx" mce_href="http://silverlight.net/default.aspx"&gt;Silverlight&lt;/a&gt; 2.0 Beta 1. Microsoft have certainly kept me on my toes as there have been lots of changes since Silverlight 1.1. I'm sorry it has taken a while!&lt;/p&gt;  &lt;p&gt;At the moment you're limited to running individual public methods (ad-hoc tests). If you need to run a suite of tests I recommend you use this in conjunction with the &lt;a href="http://www.jeff.wilcox.name/2008/03/31/silverlight2-unit-testing/" mce_href="http://www.jeff.wilcox.name/2008/03/31/silverlight2-unit-testing/"&gt;Silverlight Testing Framework&lt;/a&gt; that was released at MIX. &lt;a href="http://www.jeff.wilcox.name/" mce_href="http://www.jeff.wilcox.name/"&gt;Jeff Wilcox&lt;/a&gt; has posted a detailed tutorial that shows how to use the framework &lt;a href="http://www.jeff.wilcox.name/2008/03/31/silverlight2-unit-testing/" mce_href="http://www.jeff.wilcox.name/2008/03/31/silverlight2-unit-testing/"&gt;here&lt;/a&gt;. When running your tests using 'Test With &amp;gt; Silverlight', bear in mind that you're simply executing the test method and any test attributes (&lt;i&gt;TestInitialize&lt;/i&gt; etc.) will be ignored.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/nunitaddin/WindowsLiveWriter/TestDriven.Net2.13SupportforSilve.0Beta1_115D4/TestWithSilverlight2_2.png" mce_href="http://weblogs.asp.net/blogs/nunitaddin/WindowsLiveWriter/TestDriven.Net2.13SupportforSilve.0Beta1_115D4/TestWithSilverlight2_2.png"&gt;&lt;img src="http://weblogs.asp.net/blogs/nunitaddin/WindowsLiveWriter/TestDriven.Net2.13SupportforSilve.0Beta1_115D4/TestWithSilverlight2_thumb.png" style="border: 0px none ;" alt="TestWithSilverlight2" mce_src="http://weblogs.asp.net/blogs/nunitaddin/WindowsLiveWriter/TestDriven.Net2.13SupportforSilve.0Beta1_115D4/TestWithSilverlight2_thumb.png" border="0" height="340" width="594"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I've also included an application called 'agx.exe' that lets you run console applications using the Silverlight/CoreCLR from the command line. After you've installed TestDriven.Net you will find this standalone application here: &lt;i&gt;\Program Files\TestDriven.NET 2.0\agx.exe. &lt;/i&gt;This is simply an application that I use for my own testing purposes that I thought other people might find useful.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/nunitaddin/WindowsLiveWriter/TestDriven.Net2.13SupportforSilve.0Beta1_115D4/ConsoleSilverlight2_2.png" mce_href="http://weblogs.asp.net/blogs/nunitaddin/WindowsLiveWriter/TestDriven.Net2.13SupportforSilve.0Beta1_115D4/ConsoleSilverlight2_2.png"&gt;&lt;img src="http://weblogs.asp.net/blogs/nunitaddin/WindowsLiveWriter/TestDriven.Net2.13SupportforSilve.0Beta1_115D4/ConsoleSilverlight2_thumb.png" style="border: 0px none ;" alt="ConsoleSilverlight2" mce_src="http://weblogs.asp.net/blogs/nunitaddin/WindowsLiveWriter/TestDriven.Net2.13SupportforSilve.0Beta1_115D4/ConsoleSilverlight2_thumb.png" border="0" height="177" width="617"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You can download the new version of TestDriven.Net from &lt;a href="http://www.testdriven.net/download.aspx" mce_href="http://www.testdriven.net/download.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6127601" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/testdriven/~4/xmHN348vod0" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/TestDriven.NET/default.aspx">TestDriven.NET</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/UnitTesting/default.aspx">UnitTesting</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>TestDriven.Net 2.11: Parameterized NUnit Tests</title><link>http://weblogs.asp.net/nunitaddin/archive/2007/12/17/testdriven-net-2-11-parameterized-nunit-tests.aspx</link><pubDate>Mon, 17 Dec 2007 09:41:27 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5464131</guid><dc:creator>Jamie Cansdale</dc:creator><slash:comments>49</slash:comments><wfw:commentRss>http://weblogs.asp.net/nunitaddin/rsscomments.aspx?PostID=5464131</wfw:commentRss><comments>http://weblogs.asp.net/nunitaddin/archive/2007/12/17/testdriven-net-2-11-parameterized-nunit-tests.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://www.testdriven.net/"&gt;TestDriven.Net&lt;/a&gt; has always supported parameterized test methods when used with the &lt;a href="http://www.mbunit.com/"&gt;MbUnit&lt;/a&gt; testing framework. When using MbUnit, it is common for a single test method to execute multiple tests with different parameter inputs. The &lt;a href="http://haacked.com/archive/2004/10/20/row_based_testing.aspx"&gt;most&lt;/a&gt; &lt;a href="http://www.dotavery.com/blog/archive/2006/09/07/20030.aspx"&gt;famous&lt;/a&gt; of these test types is the MbUnit &lt;a href="http://www.mertner.com/confluence/display/MbUnit/RowTestAttribute"&gt;RowTest&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Until now there has been little reason to add support for executing parameterized tests using &lt;a href="http://www.nunit.org/"&gt;NUnit&lt;/a&gt; (historically NUnit has only supported parameterless test methods). However &lt;a href="http://www.andreas-schlapsi.com/"&gt;Andreas Schlapsi&lt;/a&gt; has &lt;a href="http://www.andreas-schlapsi.com/2007/08/17/rowtests-with-nunit-24/"&gt;recently&lt;/a&gt; written an implementation of MbUnit's &lt;a href="http://www.mertner.com/confluence/display/MbUnit/RowTestAttribute"&gt;RowTest&lt;/a&gt; using NUnit 2.4's &lt;a href="http://www.nunit.com/index.php?p=nunitAddins&amp;amp;r=2.4.5"&gt;Addin&lt;/a&gt; extensibility mechanism.&lt;/p&gt;  &lt;p&gt;I've updated TestDriven.Net 2.11 to better support NUnit add-ins and enable the targeting of RowTests and other parameterized test types. This version also includes a workaround for a log4net related &lt;a href="http://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=1851572&amp;amp;group_id=10749&amp;amp;atid=110749"&gt;issue&lt;/a&gt; that was causing a noticeable delay when launching the NUnit 2.4 GUI. You can find the release notes for TestDriven.Net 2.11 &lt;a href="http://www.testdriven.net/downloads/ReleaseNotes.html"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;To install the RowTest Extension for NUnit you will need to do the following:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a href="http://www.testdriven.net/download.aspx"&gt;Download&lt;/a&gt; and install TestDriven.Net 2.11.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.andreas-schlapsi.com/projects/rowtest-extension-for-nunit/"&gt;Download&lt;/a&gt; the RowTest Extension for NUnit 2.4.5 (Binary).&lt;/li&gt;    &lt;li&gt;Create a directory called 'addins' in '%ProgramFiles%\TestDriven.NET 2.0\NUnit\2.4'.&lt;/li&gt;    &lt;li&gt;Copy the 'NUnitExtension.RowTest.AddIn.dll' file into the 'addins' directory (&lt;a href="http://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=1851494&amp;amp;group_id=10749&amp;amp;atid=110749"&gt;don't&lt;/a&gt; put any non-assembly files there).&lt;/li&gt;    &lt;li&gt;Add a reference to 'NUnitExtension.RowTest.dll' from your NUnit test project.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="323" alt="RunRowTest" src="http://weblogs.asp.net/blogs/nunitaddin/WindowsLiveWriter/TestDriven.Net.11ParameterizedNUnitTests_136DC/RunRowTest_3.png" width="670" border="0" /&gt;&lt;/p&gt;  &lt;p&gt;You can then start writing and executing MbUnit style RowTests inside your NUnit projects! You can find &lt;a href="http://blog.dotnetwiki.org/"&gt;Peli&lt;/a&gt;'s original RowTest example &lt;a href="http://blog.dotnetwiki.org/archive/2004/10/20/1212.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="325" alt="TestWithNUnit24" src="http://weblogs.asp.net/blogs/nunitaddin/WindowsLiveWriter/TestDriven.Net.11ParameterizedNUnitTests_136DC/TestWithNUnit24_3.png" width="385" border="0" /&gt;&lt;/p&gt;  &lt;p&gt;To view your RowTests inside the NUnit GUI you will need to use 'Test With &amp;gt; NUnit 2.4'. You will find this option on the 'Solution Explorer' project context menu.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="232" alt="NUnitGui" src="http://weblogs.asp.net/blogs/nunitaddin/WindowsLiveWriter/TestDriven.Net.11ParameterizedNUnitTests_136DC/NUnitGui_3.png" width="521" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;Thanks to &lt;a href="http://www.waynebrantley.com"&gt;Wayne Brantley&lt;/a&gt; for letting me know about the RowTest Extension for NUnit.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5464131" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/testdriven/~4/4wqKaG1N00Y" height="1" width="1"/&gt;</description><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/TestDriven.NET/default.aspx">TestDriven.NET</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/NUnit/default.aspx">NUnit</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/UnitTesting/default.aspx">UnitTesting</category><category domain="http://weblogs.asp.net/nunitaddin/archive/tags/MbUnit/default.aspx">MbUnit</category></item></channel></rss>
