Target methods can define any number of service interfaces and MEF [Import/ImportMany] parameters. More information here.
Add a keyboard shortcut to the 'TestDriven.NET.GoToTestOrCode' command to execute the 'Go To Code/Test' functionality (it's no longer on the code context menu).
.NET Core isn't currently supported. I'll revisit this when .NET Core 2.0 is released.
TestDriven.Net will be installed for Visual Studio 2017 RC (Community, Professional and Enterprise in their default locations).
Installer (setup.exe) is now built using .NET 4.0 so that is can be installed on a clean installation without .NET 2.0/3.5. Also made NCoverExplorer default to using .NET 4.0.
Fixed issue where TestDriven.Net couldn't find its home directory when running on a 32-bit version of Windows.
Allow NCover/NCoverExplorer to run when just .NET 4.x is installed.
Project context menu buttons are now placed in consistent locations.
Update installer to include latest version of NUnit.
Restore option to test using the old NUnit 2.5.10 GUI from project context menu.
Async methods can be targeted directly and the "Ad hoc" runner will wait for them to complete (the async method mustn't return void).
When running all tests in a project/solution, any console/trace output will be labeled with the name of the test that output it.
When a "runtimes" element was defined in a .NET Core project, it was attempting to execute the native EXE shim rather than the target assembly DLL.
The 'Test With > In-Proc' command will pass the current
DTE (Visual Studio) object to "Ad hoc" test methods that take
DTE2) as a parameter.
VisualStudio TestHost project can be used for writing Visual Studio integration tests. As a quick way to prototype a test, the 'Test With > In-Proc' command will populate initialize the
VSTestContext class, giving easy to the current
DTE objects. Click on this issue for an example.
When running tests using the 'dotnet test' based runners, run using the exact .NET Framework version and "quirks mode" they were compiled for.
The current directory wasn't being set when executing using a 'dotnet test' based test runner. It is now being set to the output directory (consistent with other TestDriven.Net runners).
When targeting a 'project.json' based project, run using the "Ad hoc" runner if a non-test method is targeted (no test attribute), otherwise only consider the
testRunner specified in 'project.json'.
Go To Code/Testcommand
This command was rarely being used and taking up valuable space on the context menu.
.NET Core assemblies can now be targeted using Visual Studio 2015 Update 3 with .NET Core 1.0
If you add or remove features using the lightweight installer, you will need to reinstall TestDriven.Net 4.
Any .NET Core method or property can be executed using the 'Run Test(s)' command. Any returned value or object will be expanded on the output window.
.NET Core projects can be debugged using the Test With > Debugger' command.
Install the 'dotnet-test-nunit' and 'NUnit' packages from NuGet to run NUnit .NET core tests.
Install the 'dotnet-test-xunit' and 'xUnit' packages from NuGet to run xUnit .NET core tests.
The tests in nested types will now be executed when an outer type is targeted (xUnit and NUnit).
Cleaned up the reporting of failed tests and changed to use relative paths in stack frames.
Attempting to target a property in NUnit test projects would result in an exception rathere than property being evaluated.
Symbols appeared not to be found when attempting to profile a test in Visual Studio 2013 Premium.
Some people like to use nested classes to arrange their tests.
Targeting abstract test fixtures in now supported.
Generix fixtures and their contained methods can now be targeted.
For example, Assume.That(false) was being counted as a failed test rather than inconclusive/ignored.
TestDriven.Net shoud still work with all NUnit 3.x tests, but packaged version is now NUnit v3.4.1.
Please report any issues with the NUnit 3.x support in TestDriven.Net here.
There is a bug in Visual Studio 2015 that causes an exception to be thrown when a properties window is open and the active document is queried. I've added a workaround for this.
When an assert fail message contains multiple lines, NUnit 3 ends it with a trailing new line. The extra new line clutters up test results, especially if there are multiple failing tests.
Previously you needed to reference the 'NUnitTDNet' package on NuGet to run NUnit 3.x tests. You can now execute any NUnit 3.x tests without special references or setup. This installer includes NUnit 3.4.0, but can execute any NUnit 3.x tests.
Useful when converting old .NET 1.x projects that reference this early NUnit framework version.
Uninstall worked properly when using'setup.exe' or from the command line. Simply run 'setup.exe' when upgrading to new version.
General options are now available in VS 2015 under ‘Tools > Options… > TestDriven.Net’.
Give suggestions when referencing a version of 'nunit.framework' that isn’t included with installer.
Ready to release TestDriven.NET 3.9 RTM, but can't release it with Beta version of NUnit.
Tests that reference ‘nunit.framework’ 3.0 beta 2/3 can be executed with this version. Future versions of NUnit 3.0 might be compatible with this release (depending on interface changes).
This is an easy way to do performance profiling if you’re using an Enterprise version of Visual Studio.
Add support for running with quirks when tests are compiled to target .NET 4.5 and later.
Removed warning message when targeting .NET v4.5.2 and later.
Display ignored tests on ‘Error List / Messages’ when using VS 2015.
Allow double clicking on ‘Task List’ / ‘Error List’ for tests that take parameters.
Added workaround for bug in VS 2015 RC when project properties haven’t been activated yet.
Added support for F# tests that take parameters (test must have unique name).
Added workaround for issue in VS 2015 RC. This should be fixed in VS 2015 RTM.
TestDriven.Net’s setup and installer files are now signed with Mutant Design’s code signing key.
Coverage wasn’t working in Visual Studio 2015.
When ‘Lask List’ is automatically activated, the ‘Add-ins’ category will now be selected. If user navigates to ‘Lask List’, this category may need to be manually selected.
This version of NUnit will warn rather than attempt to execute tests built with future NUnit 3.x versions.
Convert TestDriven.Net from integrating with Visual Studio as an add-in to integrating as a package.
Install test runner adapter that is compatible with the VS 14 version of MSTest.
Fixed bug where ignored tests weren’t being deleted from ‘Task List’ before test run in Visual Studio 2012+.
Reduce this by limiting the number of warnings that can be added to ‘Task List’ in a single test run.
Allow non-admin users to test with coverage on any unsigned assemblies in solution.
Fixed warning when executing tests compiled with .NET v4.5.1.
This would happen the first time a solution was built before running any tests.
This was an issue in Visual Studio 2012 and 2013.
Caused by a strange Solution Explorer / keyboard interaction. Added a workaround for this issue.
This allows enter key to be pressed to jump to source that caused build to fail.
Fixed options dialog issue when TestDriven.Net is installed for all users
No bugs reported. Ready to RTM!
Add-in now installed for all users, not just current user.
WiX project extension causes Visual Studio to quit when interacting with the WiX project model. Added workaround to avoid this.
Added support for Visual Studio's built in unit test runner.
'Test With > Code Coverage' and 'Test With > Performance' can be used on Visual Studio 2013 Premium and Ultimate.
Added preliminary support for VS 2013. Needs lots of testing.
Exclude any methods tagged with 'System.Runtime.CompilerServices.CompilerGeneratedAttribute' from coverage.
This version now includes the NUnit 2.6.2 test runner.
Stack traces in Danish language are now double clickable.
Fixed .NET profiler environment variables when using VS2012.
Jumping between 'Target.cs' and 'TargetShould.cs' test file naming convention now supported.
Fixed issue when solution directory conatained a '#'.
There’s a new command called ‘TestDriven.NET.RunAllTestsInSolution’. Bind this to a keyboard shortcut to execute all tests in the current solution.
There was an issue running tests in VS 2012 when VS 2012 wasn't also installed.
This version now includes the latest stable NUnit release.
Reflector 6.8 is the last free version of Reflector that all older versions will be upgraded to. Register the location of your ‘Reflector.exe’ using ‘Tools > Options... > TestDriven.Net > Reflector’.
The location of the .NET tools changed in the latest WinSDK. Coverage will now work in VS 2012.
This fixes an issue where stack traces aren’t double clickable when Visual Studio is internationalized into English but the test process is German.
When installing for VS 2012, TestDriven.Net will only be installed for the current user. The HKLM add-in key no longer appears to work in the VS 2012 RTM release.
This version has been tested with Visual Studio 2012 RC
In VS 11 Beta the directory that contains MSTest public assemblies was changed. This stopped MSTest support from working in VS 2010 as well as VS 11 Beta. This has now been fixed.
If you still use this feature, you can re-enable it by editing the 'TestDriven.dll.config' file (see comments)
NUnit 2.6 Final Release is now included in the TestDriven.Net installer.
The NUnit GUI would crash when opening AnyCPU or x86 projects. This is now working.
Xcopy deployable version of NUnit 2.6 RC can be found in the '\Program Files (x86)\TestDriven.NET 3\NUnit\2.6' directory.
The previous 3.2 Beta was defaulting to the simple MSTest support that was developed for VS 2005. Most MSTest attributes (deployment items etc) should now be working in this version.
Removed the simple MSTest support that was originally developed for VS 2005, but was also set as the default for when a appropriate MSTest runner couldn't be found. Defaulting to this early MSTest runner would cause many MSTest attributes to be ignored and was potentially confusing.
You can find the VS 11 preview version here: http://msdn.microsoft.com/en-us/vstudio/hh127353
'Test With > Coverage' wasn't working when target project contained native code DLLs with PDB information.
This is now fixed for French versions of Windows, but will need to be fixed for each individual language (if Visual Studio isn't localized for the same language). Please contact me if you're being bitten by this issue.
Reflector 7 can be registered using 'Options > TestDriven.Net > Reflector'. Once registered the 'Go To Reflector' buttons will be visible.
Xcopy deployable version of NUnit 2.5.10 test runner is now included in the 'Program Files\TestDriven.Net 3\NUnit' directory.
No need to load 'NUnitsettings.xml' file when executed using TestDriven.Net.
By default the 'Output' window will be activated when there's significant text output to see. This can be disabled via 'Options > TestDriven.Net > General'.
Ensure that 'Error List' and 'Task List' windows are ready before starting test run.
When upgrading from a pre-2.23 version, the default for AnyCPU tests might have changed to 64-bit. This has been reset back to 32-bit in this version (see 'Options > TestDriven.Net > General').
The summary status message was being lost when focus was away from Visual Studio.
This command has been added to the code context menu to make it more discoverable (think of it as 'Ctrl-Tab' for test driven developers). You can assign a keyboard shortcut to 'TestDriven.NET.GoToTestOrCode'.
This name makes it clearer that the command can be used to navigate back and forth between your tests and code under test.
This will resolve the case when there are similarly named types in multiple namespaces (assuming the test/code under test folder structure matches).
This is caused by a bug in Visual Studio 2010. I've added a workaround that seems to resolve the issue.
This .NET 4.0 attribute can be used with both NCover and Microsoft's code coverage support.
When testing with code coverage / performance profiling, tests compiled for AnyCPU will be executed in a 32-bit process.
If the list of assemblies with PDB information exceeds a certain limit, all assemblies will be covered (whether or not they have a PDB file).
Fixed issue where 'Go To Source Code' would sometimes fail when target source was referenced from another project.
This command is used by 'Go To Source Code' from inside .NET Reflector. It takes a single cref string as a parameter.
This command can be used to flip between your tests and the code your tests are targeting (e.g. between 'Target.cs' and 'TargetTests.cs'). Your tests filename must end with 'Tests', 'UnitTests', 'Fixture' or 'TestFixture'. The command 'TestDriven.NET.GoToTests' can be called via a keyboard shortcut.
This stops Visual Studio trying to navigate to source that doesn't exist when using test frameworks that distribute their PDB files.
The NUnit GUI can be xcopy deployed along with your solution (use the files in '\Program Files (x86)\TestDriven.NET 3\NUnit\2.5'). The 'Test With > NUnit' command (on the project context menu) will now launch the xcopy deployed NUnit GUI application.
The 'Go To Reflector' command will no longer use a private copy of Reflector that TestDriven.Net downloads. This should prevent a confusing situation when updating to a new version of Reflector. TestDriven.Net will default to using the same version of Reflector as Red Gate's .NET Reflector add-in.
This options page can be used if you need to change the location .NET Reflector is installed at.
The 'Error List' was failing to activate properly when running tests using the 'Solution Explorer' or 'Repeat Test Run'.
Found a workaround for an issue that could be triggered by a corrupted 'machine.config' file.
If the 'Output' window is set to auto-hide, simply hit 'Enter' to jump to the last failed test. Otherwise hit 'Ctrl + Alt + O' to activate the 'Output' window and then 'Enter'.
The 'Output' window will automatically appear when there is something significant to see. It won't appear for general test runner info messages.
The files at '\Program Files (x86)\TestDriven.NET 3\NUnit\2.5' can (optionally) be stored with your solution. This will ensure that your tests are always executed using a known version of NUnit. For more information see: http://bit.ly/bPlwRm and http://bit.ly/rjeXn.
Warn when Typemock Isolator 6.0.3 or admin privs is required to run with NCover. This is the case when running with NCover and Isolator on .NET 4.0.
Fixed issue where JustMock (and other profilers) were being disabled when Typemock Isolator was installed.
Automatically using the installed version of NUnit turned out to be too brittle. This has been deprecated in favour of xcopy deployable test runners. If you need to execute your tests using a specific version of NUnit (which may include custom extensions), you can find instructions here: http://bit.ly/bPlwRm
Since TestDriven.Net 3.0 is focused on .NET 2.0 & 4.0 development, including the .NET 1.1 version of NUnit 2.5 was redundant.
The 'Output' window will be activated if it's hidden and there is new output/error information to see.
Test failures that are due to an attribute (such as 'ExpectedException') don't contain any stack trace information. These failed tests can now be navigated to via the 'Error List' (only on VS 2010).
The test project's 'Target Framework' property will be used to decide which .NET version to execute with.
The 'Task List' tool window will appear if all targeted tests have been skipped.
Fixed bug in ExpectedException support that would cause tests declared this attribute to be skipped.
Use 'Test With > Performance' to perform instrumented performance profiling on target code.
Any skipped tests will be displayed on the 'Task List' as double-clickable items.
All versions of NCover can now be used with Visual Studio 2010 / .NET 4.0.
Solution relative and project output relative deployment items are now supported. Files will be deployed in the test project's output directory when required.
Targeting an abstract base class will execute concrete test classes. Targeting a test method on the base class will execute this method for all concrete classes.
Visual Studio no longer needs to be run as administrator when performing coverage/profiling on unsigned assemblies.
Output the minimum amount of whitespace to ensure that test output and exceptions are clearly separated. This change is particularly noticeable when executing all tests in a solution.
Tests with the HostType attribute will be skipped and indicated in the 'Task List'.
This was tested with the RowTest Unit Test Extensibility Sample (for Visual Studio 2010), which can be found here: http://code.msdn.microsoft.com/UnitTestExtendSample
Custom categories that extend this attribute will now be taken into account.
Custom exception filters that extend this attribute will now be taken into account.
The reason why a test is being ignored can be included in the description like this: [Ignore, Description("Reason for ignoring.")]
Confusing "NCover couldn't create a coverage report" message was being output when NCover had expired. This version will output a more meaningful warning.
Set these properties to be the test project's output directory (which TestDriven.Net uses for deployment).
Added workaround for this Visual Studio 2010 painting bug.
Navigation from Reflector to code inside solution folders wasn't working. This has been fixed.
Test categories can be specified using the TestCategory attribute on VS 2010 or [TestProperty("TestCategory", "MyCategory")] on VS 2008. Tests can be filtered using the 'TestDriven.Net > General > Categories' option.
Must use CommandBarControls.Add on VS 2010 and Commands.AddCommandBar on VS 2005 / 2008.
Fixed issue where test assemblies were ending up locked after being executed inside the Visual Studio process.
This button has been moved so that it doesn't accidentally get pressed when attempting to run tests.
If these commands aren't visible on Reflector's context menu, launch Reflector using 'Go To Reflector', open 'Tools > Integration Options', deactivate Visual Studio add-in, press 'OK', then reactivate the add-in.
This could happen when the Reflector Pro add-in activated Reflector inside the Visual Studio process (e.g. when using commands on the '.NET Reflector' menu).
Fixed crash when Reflector was launched by Redgate's .NET Reflector add-in and 'Go To Source Code' couldn't find parent Visual Studio instance.
MSTest projects will now be executed on a STA thread.
Upgrading to TestDriven.Net 3.0 should now install buttons correctly. You may need to activate TestDriven.Net in the 'Add-in Manager' if you downgrade back to TestDriven.Net 2.x.
Added workarounds for multiple issues with the VS 2010 command bar automation model.
You will be informed if you need to upgrade NCover for .NET 4.0 support.
Ignored tests now appear on the 'Task List' rather than the 'Output' window. They could easily be missed without some kind of hint.
MSTest support is now a first class citizen inside TestDriven.Net 3. This includes support for virtually all unit testing related MSTest attributes. The 'DeploymentItem' attribute is not supported (use project item's 'Copy to Output Directory' property instead).
Reflector 6 Pro will be downloaded and installed the first time 'Go To Reflector' is used. TestDriven.Net installs 'Go To Source Code' and 'Toggle Breakpoint' commands on the Reflector's context menus. 'Go To Source Code' can navigate to source that was decompiled with Reflector Pro or that was compiled on the local machine.
Added support for integrated code coverage when using Visual Studio 2010 Premium.
Test execution speed for MSTest has been significantly improved. This is particularly noticeable when executing individual tests.
The 'DataSource' attribute is now supported. For data file deployment, use 'Copy to Output Directory' property rather than 'DeploymentItem' attributes.
Test classes and methods marked with the 'Ignore' attribute will not be included in the test run.
Test classes can be nested inside public test or non-test classes.
MSTest's 'ExpectedException' attribute (including the 'AllowDerivedTypes' property) now works when using VS 2010.
Xcopy deployable version of NUnit 2.5.3 test runner is now included in the 'Program Files\TestDriven.Net 3\NUnit' directory.
ApartmentState can be specified using the 'NUnit' section in 'App.config', or by using a 'RequiresSTA' attribute (which is recommended).
TestDriven.Net will automatically enable or disable Typemock Isolator, depending on whether a Typemock assembly is being referenced. If a 3rd party library is being used that depends on Typemock, an empty 'LibraryName.dll.tmock' file should be placed next to the referenced assembly (e.g. 'Ivonna.dll.tmock'). This signals to TestDriven.Net that Typemock should be enabled when executing tests.
Functions can now have complex names, for example: let ``function with complex-name``() = ...
Right click, 'Go To Reflector' now works on F# project references.
Ad hoc, public methods can be executed with Silverlight 4.0 on Visual Studio 2010. Silverlight 4.0 is compatible with a subset of .NET 4.0 (not just assemblies that were compiled for Silverlight).
Ad hoc, public methods can be executed using the CoreCLR (Silverlight) on 64-bit machines.
By default .NET 4.0 does not enable CAS policy by default (which would allow downloaded and network shared assemblies to execute). The 'loadFromRemoteSources' switch has now been enabled, which will allow these assemblies to execute. See http://go.microsoft.com/fwlink/?LinkId=155569 for more information.
This version contains numerous workarounds for issues in Visual Studio 2010 Beta 2. Be sure to update TestDriven.Net when Visual Studio 2010 is released!
TestDriven.Net 3.x supports Visual Studio 2010, 2008 & 2005. For Visual Studio 2003 support, please use TestDriven.Net 2.x.
New test runners that use a .tdnet file don't need to install registry entries in order to work. This means the test runner binaries can be checked into version control and don't need to be installed. (This feature is already supported by xUnit 1.5, Gallio 126.96.36.1993 and Gallio 188.8.131.527)
When a compatible test runner can't be found when attempting to execute a MbUnit or xUnit unit test - a warning message will be displayed informing the user how to solve the issue.
Test runner plug-ins can specify the default ApartmentState to use (STA or MTA).
NUnit 2.5 tests will in now be executed using a MTA thread to align with the NUnit 2.5 GUI and Console.
Different versions of Gallio/MbUnit can now be executed side by side (using zero install / xcopy deployable test runners).
Fixed issue that meant overridden NUnit test methods couldn't be directly targeted.
'Run Test(s)' and 'Go To Reflector' should now work on C++/CLI methods with primitive parameters. NOTE: The /clr:safe option may be required to prevent memory corruption on C++/CLI tests.
ReSharper will no longer prevent TestDriven.Net's debug logs from appearing.
You can specify the default using 'Options\TestDriven.Net\Any CPU tests'.
Your tests will run almost twice as fast in a 32-bit (WOW64) process! If you need to run tests in a 64-bit process you can compile your test project for x64 or change the default using 'Any CPU tests' option. See also: AnyCPU Exes are usually more trouble than they're worth.
Focus will be restored to the editor after doing a 'Repeat Test Run'.
Much shorter, project relative paths will be used in stack traces (assuming the relative path is unambiguous).
The same version as the referenced 'nunit.framework' will be used if available. Otherwise the latest NUnit 2.5 version will be used. This allows the latest version of NUnit 2.5.x to be used and for NUnit extensions to be stored in a consistent location.
Include NUnit 2.5.1 in package.
NUnit 2.5 can now be used from Visual Studio 2003.
A workaround for this potential issue has been added.
Visual Studio 2010 'Test With > Team Coverage' now works. To work with VS 2010 see here.
For example the version of NUnit 2.5.x used will appear in the test run summary (not simply "2.5").
Added workaround for situation where NUnit registry entries are installed but binaries are missing.
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).
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.