TestDriven.Net now integrates with the .NET 2.0 version of NUnit 2.5 RTM.
Command bar button extensibility for add-ins is disabled in VS 2010 Beta1. Commands can still be executed by associating shortcut keys using 'Preferences... > Environment > Keyboard'. To enable commands inside VS 2010 the 'TestDriven.Net > Supported Applications > Visual Studio 2010' feature must be explicitly enabled by doing a 'Custom' install.
Added workaround for VS 2010 Beta1 crashing on startup.
Full NUnit 2.5 support is currently only supported with .NET 2.0 or above. If the .NET 1.1 version of 'nunit.framework' 2.5 is referenced, the NUnit 2.4 execution engine will be used. This enables support for the new Assert.That syntax, but not the new NUnit 2.5 attributes.
The 'Test With > NUnit 2.5' (launch NUnit GUI) command will appear on the 'Solution Explorer' project context menu for VS 2005 or higher.
Added support for targeting methods with nullable parameters. This can be useful when executing parametrized tests or when calling 'Go To Relector'.
The 'Go To Relector' command can now be used on methods and fields with complex generic types.
It is now possible to target methods/fields/parameterized tests with concrete generic parameters.
Only assemblies with PDB information in the target project's output directory (or subdirectories) will appear in NCoverExplorer.
Added workaround so that if CurrentCulture/CurrentUICulture has been explicitly set to "en-US" on a non-English machine, exception stack traces will still be double-clickable.
Resolved issue with previous NUnit 2.5 support where namespaces weren't appearing in the test results.
NUnit 2.5 RC will be used to execute any tests that reference the 'nunit.framework' version 2.5.
The 32-bit version of the NUnit GUI will be used to open test assemblies compiled for the x86 platform.
Trace/debug messages will now be displayed in the 'Debug' pane when stepping through code. Previously these messages only appeared in the 'Test' pane.
Select 'Custom Setup' to enable support for 'Supported Applications > Visual Studio 2010'. This version is known to work with the Visual Studio 2010 PDC CTP but crashes with the later April09 CTP.
The notify icon's 'Debug' option was redundant and potentially confusing. The 'Test With > Debugger' command should be used instead.
TestDriven.Net will automatically enable Typemock Isolator when the target references a TypeMock assembly and disable it otherwise. The Typemock Isolator add-in can be set not to load on 'Startup' using 'Add-in Manager'.
The test process used for debugging tests and normal test execution is now shared. This will mean faster start-up and and fewer rockets appearing in the notify box.
TestDriven.Net will now automatically execute your tests in a 32-bit process when no 64-bit version of NCover is installed.
Tests will now always be executed in a 32-bit process when profiling with dotTrace.
NCoverExplorer 2.1/3.0 will now automatically reload coverage file without prompting.
Fixed issue where uninstalling Gnoso's NCover might break bundled NCoverExplorer support.
As of NCover 3.0.17, NCoverExplorer won't prompt to save coverage project when closing.
Now only assemblies with PDB information will be show up in NCoverExplorer 3.0.
Fixed issue with some C++/CLI assemblies that would cause them to execute in the wrong process type (e.g. a 32-bit assembly in a 64-bit process).
Added workaround for Visual Studio crash when executing 'Test With > Coverage' on a large number of projects. This was caused by a memory overflow bug in Process.Start(...).
When using a Turkish version of Windows, "this".ToLower() == "thıs" (spot the different). Changing to use ToLowerInvariant() has fixed the installer.
This command is obsolete now that 'TypeMock Isolator' is being automatically enabled and disabled.
To execute all tests in 32-bit mode, you can set require32bit="true" in the '\Program Files (x86)\TestDriven.NET 2.0\TestDriven.dll.config' file. The recommended way to force 32-bit execution is to set your test project's 'Platform target' to 'x86' (under 'Build' on the project properties page).
This version has been compiled to work with NUnit 2.5 Beta 2.
Fixed so that tests that throw an exception are reported as failed tests.
The name of the test runner used will be displayed in brackets after the test results.
Fixed so that .NET 1.1 is always executed in a 32-bit process.
The previous version (2.18 Beta) was broken when loaded in Visual Studio 2003.
The test error list and output pane will always be cleared before any project is built.
All VSTS *.coverage files will be deleted when the last instance of Visual Studio exits. This means coverage files from the drop down list are are now usable.
'Test With' menus will be deleted as part of the uninstallation process.
The xUnit installer will now register itself properly for executing x64 and x86 unit tests. TestDriven.Net and xUnit must be installed using the same user account.
Privilege elevation will now only be requested once when setup is launched.
NUnit 2.5 Beta can be found in the 'Program Files\TestDriven.NET 2.0\NUnit\2.5' folder.
Added support for targeting generic test fixtures. See here for documentation about creating generic fixtures.
Added support for targeting static tests on attributeless static text fixtures. This is particularly useful when writing F# unit tests (where there is no explicit fixture class).
When executing all tests in a solution/solution folder, only attempt to execute projects that reference a known test framework assembly. This results in faster execution and eliminates 'skipped' test runs.
It is no longer necessary to register test runner plugins under the 32 and 64-bit registry roots when installing for all users (under HKLM). This was a problem for some versions of xUnit and MbUnit.
If there are multiple plugins installed that can handle a particular test framework (e.g. both xUnit and Gallio register for 'xunit.dll'), only the highest priority runner will be given the chance to execute the tests. This allows ah-hoc tests to be executed when a project also contains xUnit tests.
Test runners must now specify which test framework assembly (e.g. 'nunit.framework' / 'MbUnit.Framework') they support using the 'TargetFrameworkAssemblyName' registry key. This allows non-test projects to be quickly skipped when executing all tests in a solution.
I've decided to drop support for VS.NET 2002/.NET 1.0 because .NET 1.0 isn't installable on my 64-bit development machine. At this point I believe it's more important for me to dog food x64 support than to maintain legacy support for .NET 1.0.
Test runner, code coverage and 'Go To Reflector' functionality now works with Visual Studio 2010/.NET 4.0.
Use 'Test With > Silverlight' to execute public ad-hoc tests with the Silverlight CoreCLR. This feature is compatible with Silverlight 2.0 RTM and Beta versions.
When all classes in a project folder belong to the same namespace, TestDriven.Net will execute all tests in the namespace as a single test run rather than as individual test fixtures.
Preserve keyboard shortcuts when new version of TestDriven.Net is installed. This will work when updating TestDriven.Net 2.17 and higher.
You can view installed test runners under 'Tools > Options... > TestDriven.Net > Test Runners'. A future version will allow you to enable/disable them.
This better supports extensible test frameworks like MbUnit or xUnit where their framework assembly ('MbUnit.Framework' or 'xunit') isn't necessarily referenced directly by the test assembly.
Categories of test can be included or excluded via the TestDriven.Net options pane (this feature works for NUnit tests).
'Go To Reflector' now works on F# projects, modules, parameterless methods and properties.
F# methods can be executed as ad-hoc tests or via a unit testing framework that supports static test methods (e.g. xUnit).
You can now use 'Run Test(s)' on F# properties to evaluate them.
Test runner generated messages and console output will now be displayed when running all tests in a project/solution.
By default trace/debug output isn't displayed when executing all tests in a project/solution. This behaviour can be modified via the TesDriven.Net options pane.
This is a new extensibility point for test runners that want to manage their own test process/app domain (future versions of Gallio will use this).
See 'Tools\Options...\TestDriven.Net' for new option
See 'Tools\Options...\TestDriven.Net' for new option
NUnit 2.4.8 can now be found in 'NUnit\2.4' directory
'Test With > Silverlight' now supports Silverlight 2 Beta 2.
Team Coverage is now supported on a clean VS2008 Team Edition install.
When running all tests in a solution, only projects with 'Build' checked in the 'Configuration Manager' will be built and executed.
When Gallio is installed, 'Test With > Gallio Icarus' should appear on project context menu.
Tests in solution folders will now be executed.
Running 'ad-hoc' public methods now works with Silverlight 2.0 Beta 1.
Updated NUnit test runner to target NUnit 2.4.7.
Andreas Schlapsi's RowTest for NUnit can be found in the '\Program Files\TestDriven.NET 2.0\NUnit\2.4\nunit.framework.extensions.dll' assembly.
Made it clear that TestDriven.Net works with VS 2008 in the installer.
When running all tests in a solution, honor the 'Build' check box in the 'Configuration Manager'.
There appears to be a bug when mixed managed/unmanaged C++ assemblies are unloaded that causes them to remain locked. As a workaround you can add the following to your App.config file's appSettings element: <add key="ShadowCopyFiles" value="true" />
NUnit 2.4.6 is now packaged with TestDriven.Net (remember to update any installed NUnit add-ins).
This version should correctly determine when a build is required before a test run. The previous version might incorrectly skip the build if only a non-source project item had changed. The 'Smart Build' feature is now only active when using VS 2005 and above.
You can now target for execution NUnit test methods that take parameters (e.g. when using Andreas Schlapsi's RowTestExtension for NUnit).
When using 'Test With > In-Proc' the 'Dte' and 'ServiceProvider' properties of 'VsIdeTestHostContext' will be available for use. For this to work the Visual Studio 2007 SDK must be installed and a reference to 'Microsoft.VSSDK.TestHostFramework' added.
This was caused by an obscure log4net related issue. I've implemented a workaround to avoid the delay and ensure that NUnit log files are written to the correct location ('%APPDATA%\NUnit\NUnit.log').
The 'addins' directory must only contain valid assembly files. I've moved the 'addins.txt' file into the parent directory.
This command should no longer mix up generic and non-generic implementations of a method (e.g. 'Method<T>(T x)' and 'Method(int x)').
Added support for generic methods, generic types, overloaded methods, constructors, properties and explicitly implemented interfaces. This has been tested using C# and Visual Basic (with and without debug symbols).
You can now toggle breakpoints on regular constructors from inside Reflector. Unfortunately Visual Studio doesn't appear to support setting breakpoints on static constructors by method name.
Generic types, methods and other members are now supported when using 'Go To Reflector' and 'Go To Source code' (from inside .NET Reflector).
If
no source files have been edited since the last test run, assume that a
build won't be required before the next run. This leads to a
significant performance improvement when dealing with large solutions.
'Test With... Team Coverage' option is now available when using VS 2008 Team Suite/Tester/Developer.
NCover 2.0 (64-bit) will now be detected and used when testing a 64-bit (or platform neutral) assembly.
TestDriven.Net will now use 64-bit versions of NCover and TypeMock when installed.
TestDriven.Net will pass the name of the current solution to NCover 2.0 for use with NCoverExplorer's per "project" settings.
Targeting generic test types and methods is now supported. The usefulness of this will depend on the individual unit testing frameworks.
This version of NUnit is significantly faster, especially when running a small number of tests.
This appears to be a bug in the VS 2008 CommandBars automation model. I've implemented a workaround in this version that should avoid the crash.
In some versions of TypeMock, the TypeMock add-in was being left behind on uninstall. This orphaned add-in would cause 'Test With... Coverage' to break. I've added a check for this and a warning message.
Don't use TMockRunner with NCover if TypeMock is disabled.
Updated CLSID and fixed timing issue so Test With Silverlight now works with September refresh.
Fixed so that code coverage with NCover 2.0 works when the TypeMock add-in is enabled in Visual Studio.
NUnit 2.4.2 is now included in the installer.
Fixed issue that would cause tests that use Application.CommonAppDataPath to fail.
See joint statement: "Jamie Cansdale and Microsoft Corporation have agreed to concentrate on working together on future releases of TestDriven.Net for Microsoft's officially extensible editions of Visual Studio, as opposed to spending time litigating their differences."
This issue was only manifesting on machines running non-English versions of Windows.
When Silverlight 1.1 is installed a new 'Test With... Silverlight' option will appear on the code context menu. This enables the execution of any public method using the CoreCLR (similar the existing ad-hoc tests feature). At the moment no unit testing frameworks are compatible with the CoreCLR.
See release notes here
To use NUnit extensions with TestDriven.NET you must place extension assemblies in the '\Program Files\TestDriven.NET 2.0\NUnit\2.4\addins' directory.
Exception information was not being displayed when using new NUnit 2.4 version. This is now fixed.
Test assembly path was being truncated when directory contained a '#'. This is now fixed.
Note: Properties tool window must be open for TestDriven.NET to activate itself.
Include new build of NCover in package.
Fixed bug where "Test With... Coverage" would hang if there were too many assemblies with PDB information referenced by a project.
In this version you must create a directory at '\Program Files\TestDriven.NET 2.0\addins' for NUnit extensions (this is a temporary solution).
Assert.Ignore(...) now shows up correctly as a warning in Error List.
See here for more information.
See here for more information.
To activate TestDriven.NET when using the Express SKU - ensure that the 'Properties' tool window is visible and select any item on the 'Solution Explorer' view.
Added support for version ranges when selecting the correct test runner for a given framework assembly.
Build against NUnit 'Release-2-4-Current' tagged version.
Added workaround for change in assert message formatting between NUnit 2.2 and NUnit 2.4.
MSTest support is now working with VS2005 Team editions and Orcas.
Running all tests in a namespace was broken during the move from NUnit 2.2.8 to NUnit 2.2.9. This is now fixed.
When Mono is installed a 'Test With... Mono' option will appear on the menus. This has been tested with Mono 1.2.3.
Mono only works with app domain config files that end with '.config'. Added workaround that makes temporary config file end with '.temp.config' not '.config.temp'.
Added support for Reflector 5.0 Beta (with with C# 3.0/Linq support).
Register add-in for use with Visual Studio Orcas (tested with Jan 2007 CTP version).
Icons were only being uninstalled correctly from VS2005 if VS2003 was also installed.
Ensure that debugger is detached before aborting the test thread.
Make 'Go To Reflector' default to appear at bottom of solution context menu.
Fixed issue where NCover coverage report would appear empty in NCoverExplorer.
Jump from any code element in Reflector to corresponding source code in Visual Studio.
Right click on Project in the 'Solution Explorer' to load into Reflector.
Right click on Solution node in the 'Solution Explorer' to load all projects into Reflector (useful when searching whole solution).
Grant Drake had done many fixes in NCover 1.5.7
If source code isn't part of Visual Studio solution then use PDB info if available to find source file and location for method (useful when debugging).
'Test With... dotTrace' option will appear when dotTrace is installed.
Don't show 'Test With... Coverage' option when NCoverExplorer isn't installed.
Stopped 'No fixture attribute on parent class' warning when executing a non-test method in NUnit test project.
Warn when attempting to run a private test fixture or test. Before the test would be executed as an ad-hoc test without any setup/teardown methods being called.
When running as user in Administrator role, install for all users rather than just current user. This fixes installing on Vista.
NCover is now shipped as part of the TestDriven.NET installer. NCover 1.3.3 and 1.5.6 are included. NCover 1.5 will be used if .NET 2.0 is installed (works with Visual Studio 2002, 2003 and 2005). NCover 1.3 will be used if only .NET 1.1 is installed. Thanks to Peter Waldschmidt for allowing me to ship a non-GPL version of NCover with TestDriven.NET!
When using Visual Studio 2005 there is an option to build and run tests using .NET 1.1.
Output any exceptions thrown in fixture SetUp/TearDown.
Made all menus with unit testing functionality consistent.
Activate the 'Test' pane at the end of a test run so test results are visible after 'Test With... Debugger'.
Always make output window visible on test run unless window is set to auto hide. Use 'Projects and Solutions\Show Output window when build starts' option if you want 'Output' window to pop up when set to auto hide.
Added warning when attempting to run a fixture with attributes from an unknown/not-installed unit testing framework.
Show NCover 'Coverage' and 'Team Coverage' options on the 'Test With' menus when code coverage tools are available for use.
Only show test runners on 'Test With' menus that are available to use use (i.e. appropriate applications are installed). For example NCover, Team Coverage, TypeMock and .NET 1.1 (MSBee) will only appear when available for use.
Added support for mixed mode and unmanaged debugging. 'Test With... Debugger' will use the 'Enable unmanaged code debugging' or 'Debugger Type' settings for the test project. The C++ debugger type 'Auto' will always default to managed.
To enable 'Test With... Debugger (E&C)' that works with Edit & Continue; edit the 'TestDriven.dll.config' file and uncomment <button command="DebuggerEaC" />. This test runner may 'touch' project files when used with source control (this is why it's disabled by default).
An appropriate warning will be output when the 'App.config' file of a test project contains invalid XML.
Added 'Go To Reflector' button to Tools menu. Select a solution or project in the 'Solution Explorer' and hit 'Tools\Go To Reflector' to load project assemblies into Reflector. 'Go To Reflector' can be used from many different window contexts.
Show breakpoints when a breakpoint is toggled from inside Reflector (right click on a method and 'Toggle Breakpoint').
One or more modules can be selected inside the debugger 'Modules' window and opened inside Reflector.
One of more project references can be selected and opened inside Reflector.
Property get methods can now be executed as ad-hoc tests.
Run each test fixture in the folder as a separate test run rather than assuming the folder exactly corresponds to a namespace. Only the first class in each source file will be executed as a fixture.
Changed to conform with menu naming conventions.
Give priority to installed versions of NCover that are newer than the built in version.
Added support for testing with code coverage when TypeMock is enabled. Simply use 'Test With... Coverage' when the TypeMock add-in is enabled.
Honor 'x86', 'x64' or 'Itanium' platform setting of test project. If platform is set to 'Any CPU' then tests will default to running in 64 bit process.
Added option to 'Test With... TypeMock'. This allows TypeMock to only be used on tests that require it (when the TypeMock add-in is disabled). Tests that don't require TypeMock run faster when TypeMock is disabled.
Use much faster 'Test With... Debugger' functionality when running under Visual Studio 2005 that doesn't touch project files and interfere with source control.
Made more robust when faced with possible left over registry entries from previous installs (e.g if an uninstall was forced using msizap).
'Team Coverage' test runner is only available when running as Administrator user. NCover 'Coverage' test runner will work when running as Limited User.
Preserve important Reflector configuration settings when using an already installed version of Reflector. Use proper download dialog to obtain Reflector on first use. Thanks to Grant Drake for contributing this feature!
Remove any menus that might be left over from previous versions of TestDriven.NET.
Reload assemblies when 'Go To Reflector' is called if the assembly has changed.
Fixed issue where test process would exit without warning when stepping through test code.
Show stack trace of outermost exception when nested exception is thrown from MSTest fixture.
Use default 'TestDriven.NET 2.0' directory when doing slient install ("start /wait TestDriven.NET-YOUR_VERSION.exe /q").
Fixed issue where 'Repeat Test Run' would build wrong assemblies when testing with debugger on Visual Studio 2002/2003.
Fixed timeout if a individual test runs for more than ~6 minutes.
Prevent 'Team Explorer' login from stalling uninstall.
Fixed error loading Reflector add-in when launching from Visual Studio 2005.
Executing tests in Web Site projects aren't supported in TestDriven.NET 2.0. Display warning in output window.
Note MbUnit is now a separate install (see www.mbunit.org).
Added 'Go To Reflector' to 'Code', 'Disassembly' and 'Call Stack' context menus.
Using .NET Reflector right click on any method and 'Toggle Breakpoint' to add a VS breakpoint. Be sure to dissable 'Just My Code' (under 'Tools/Options.../Debugging') if using VS2005.
Fixed so that unhandled exceptions no longer abort the process but instead output their thread name, exception message and stack trace (output message only appears when using .NET 2.0).
Added support for 'Repeat Test Run'. Tests will be executed with the last used test runner (default, debug, coverage etc.).
When using VS2005, 'Test With... Debugger' will launch as quickly as the default 'Run Test(s)' implementation. It won't touch the project files or add a temporary 'surrogate' project.
When multiple test suites are executed a summary will be displayed in the status bar.
This feature was too experimental to release as part of TestDriven.NET 2.0 RTM.
In VS2005 'Test With... Debugger' will no longer touch the project file (previous versions needed to disable VS hosting process).
'Test With... Debugger' now works with VS2005 'Web Application' projects (not 'Web Site' projects).
'Test With... Debugger' no longer requires a 'surrogate' project when executing tests in an MSTest project.
Added support for running tests in 64 bit process. The test runner will honor the test assembly's 32bit flag.
Now using NUnit 2.2.8.
Added warning before uninstall for people who may be using the Express SKU support in previous versions.
Fixed issue that could stop TestDriven.NET's command bar buttons from being installed on some menus.
Fixed big that caused some 'Test With...' menu buttons to be missing in cultures that use ',' for decimal point.
'Test With... Debugger' now works when a solution folder has the same name the test project
Added option to build and test using .NET 1.1 from Visual Studio 2005. Use the 'Test With... .NET 1.1' command.
Fixed issue that could cause the wrong command bar button icons to display on some machines.
Ensure that the 'ComPlus_Version' environment variable is cleared in test process. This could cause spawned .NET processes to behave unexpectedly.
Fixed issue with always visible grey command bar buttons when 'SQL Server Analysis Services' was installed. You may need to delete %APPDATA%\Microsoft\VisualStudio\8.0\1033\CmdUI.PRF
Fixed issue when using non-English localized versions of VS2005/.NET 2.0. Stack traces of failing tests weren't double clickable or showing up in the error list.
Stopped 'SerializationException' from being thrown when JetBrains dotTrace 2.0 is installed.
Fixed issue where test project dependencies were not being compiled before test run. This would only happen when an ASP.NET 2.0 Web Site project was part of the solution.
Clear test failures from error list before building for next test run.