TestDriven.Net 2.22 RTM - What’s New?

I'm happy to report that TestDriven.NET 2.22 RTM has cleared the launch pad!

It has been a while since the previous RTM version, so here is a quick recap of what’s new:

NUnit 2.5

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 & 2.4 are also included.


(more here)

64-bit Windows

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.



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).


(more here)


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).


(more here)

Visual Studio 2010 Beta1

Previous beta versions of TestDriven.Net were compatible with the PDC 2008 release of VS 2010, but not the VS 2010 Beta1 release.  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.


(more here)

Typemock Isolator

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.



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 & 3.x versions. When you ‘Test With > Coverage’, the contents of NCoverExplorer will be automatically refreshed and only classes with debug symbols will appear in the tree view.


(more here)

You can download the latest version from here. 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 licensing & purchase page or contact us for a quote. :)

I’m now going to start working on the next version in earnest. You are welcome to contact me with any suggestions you have for a future release.

Thanks for your support, bug reports and interest!


  • Something has happened to my TestDriven.NET environment, I am having issues getting it to work with NUnit. I have tried un-installing / re-installing TD.NET and NUnit. This happens on all my projects that use NUnit. I dont know why its looking for nunit version 2.4.6. I have double checked all my references, nothing I am using is using that version of NUnit. Here is the exception:

    failed: Could not load file or assembly 'nunit.framework, Version=, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
    System.IO.FileLoadException: Could not load file or assembly 'nunit.framework, Version=, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
    File name: 'nunit.framework, Version=, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77'
    at System.ModuleHandle.ResolveType(Int32 typeToken, RuntimeTypeHandle* typeInstArgs, Int32 typeInstCount, RuntimeTypeHandle* methodInstArgs, Int32 methodInstCount)
    at System.ModuleHandle.ResolveTypeHandle(Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)
    at System.Reflection.Module.ResolveType(Int32 metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
    at System.Reflection.CustomAttribute.FilterCustomAttributeRecord(CustomAttributeRecord caRecord, MetadataImport scope, Assembly& lastAptcaOkAssembly, Module decoratedModule, MetadataToken decoratedToken, RuntimeType attributeFilterType, Boolean mustBeInheritable, Object[] attributes, IList derivedAttributes, RuntimeType& attributeType, RuntimeMethodHandle& ctor, Boolean& ctorHasParameters, Boolean& isVarArg)
    at System.Reflection.CustomAttribute.GetCustomAttributes(Module decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType, Boolean mustBeInheritable, IList derivedAttributes)
    at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeType type, RuntimeType caType, Boolean inherit)
    at NUnit.Core.Reflect.GetAttributes(ICustomAttributeProvider member, Boolean inherit)
    at NUnit.Core.Reflect.HasAttribute(ICustomAttributeProvider member, String attrName, Boolean inherit)
    at NUnit.Core.Builders.NUnitTestFixtureBuilder.CanBuildFrom(Type type)
    at NUnit.Core.Extensibility.SuiteBuilderCollection.CanBuildFrom(Type type)
    at NUnit.Core.TestFixtureBuilder.CanBuildFrom(Type type)
    at NUnit.Core.Builders.TestAssemblyBuilder.GetFixtures(Assembly assembly, String ns)
    at NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName, Boolean autoSuites)
    at NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName, String testName, Boolean autoSuites)
    at NUnit.Core.TestSuiteBuilder.BuildSingleAssembly(TestPackage package)
    at NUnit.Core.TestSuiteBuilder.Build(TestPackage package)
    at NUnit.AddInRunner.NUnitTestRunner.run(ITestListener testListener, Assembly assembly, ITestFilter filter)
    at NUnit.AddInRunner.NUnitTestRunner.runMethod(ITestListener testListener, Assembly assembly, MethodInfo method)
    at NUnit.AddInRunner.NUnitTestRunner.RunMember(ITestListener testListener, Assembly assembly, MemberInfo member)
    at TestDriven.TestRunner.AdaptorTestRunner.Run(ITestListener testListener, ITraceListener traceListener, String assemblyPath, String testPath)
    at TestDriven.TestRunner.ThreadTestRunner.Runner.Run()

    Any tips?

  • I hate my life but at least this makes it beaabrle.

  • Son of a gun, this is so hlepufl!

  • Thanks, Your post is an excellent example of why I keep coming back to read your excellent quality

  • Very informative and great complex body part of articles ,
    now that’s user pleasant (:.

  • We did not understand your second paragraph by any manner. What can you mean by that?
    This really is an interesting topic to me so I wish to understand everything that you have to
    say. We were not able to locate a quantity of other articles during my search although I’m not very computer literate so that could
    be why. I am hoping to see you publishing more frequently.

  • Very descriptive blog, I loved that a lot. Will there be a part

Comments have been disabled for this content.