NUnit Test Adapter for Visual Studio 2012 and 2013

The NUnit Test Adapter allows you to run NUnit tests inside Visual Studio. The current release, version 0.96, is designed to work with Studio 2012 RTM, Update 1-3, and with Visual Studio 2013 Preview. Some features are not available under the RTM.

Note that Releases of Visual Studio prior to VS 2012 did not have the ability to directly run tests built with Open Source testing frameworks like NUnit.

Installation

From version 0.95 there are two ways of installing the adapter within Visual Studio. See Note 1 how to choose.

  1. Use the Extension Manager
  2. Add it as a Nuget package to your solution. (New in 0.95, require Update 1 or higher)

To install the NUnit Test Adapter using the Extension Manager, follow these steps:

  1. From within Visual Studio 2012 or 2013, select Tools | Extension Manager.
  2. In the left panel of the Extension Manager, select Online Extensions.
  3. Locate (search for) the NUnit Test Adapter in the center panel and highlight it.
  4. Click 'Download' and follow the instructions.

Use the Extension Manager to ensure that the NUnit Test Adapter is enabled.

To add it is a Nuget package, you must have an active solution, then follow these steps:

  1. From Tools menu, use Library Package Manager, select Manage NuGet packages for solution
  2. In the left panel, select Online
  3. Locate (search for) NUnit Test Adapter in the center panel and highlight it
  4. You will find two packages, one without framework and one with framework. See notes below for which to choose.
  5. Click 'Install'
  6. In the "Select Projects" dialog, you need to select at least one project to add the adapter to, see notes below.

Note 1: How to choose between Extension and NuGet package

The Extension will apply to Visual Studio itself, and will work for all projects you use. All users of your solution needs to install the Extension. If you use TFS Build you must also install the extension to the build system there.
The Package will apply to the solution, and will work for any other user too, as it follows the solution, but requires the user to have Update 1 or above. It will also work for any TFS2012 Update 1 or above server build, including TF Service and requires no further installation.

Note 2: Choosing NuGet package

The adapter packages come with and without the NUnit framework. If you have only one test project you can choose the one with framework, that saves you from having to install both the NUnit package and the Adapter package. If you have multiple test projects you need to install the NUnit framework for all of these, but only one of these need the adapter, then choose the adapter package without framework. Installing the adapter for multiple projects will do no harm.

Usage

In preparation for using the test adapter, make sure that the Unit Test Explorer is shown in your window. If you don't see it, use the menu ( Test | Windows | Test Explorer ) to show it and position the window where you would like it within Visual Studio.

When you initially open a solution, no tests will be displayed. After compiling the assemblies in the solution, Visual Studio will interact with the NUnit Test Adapter to discover tests and a list of them will be shown in the Test Explorer.

Click on Run All in the Test Explorer to run all the tests. You may also select one or more tests in the list and run them by right-clicking and using the context menu. The context menu also contains entries for debugging tests and for navigating to the source code of a test.

Tests may be grouped by Duration and Outcome under VS2012 RTM and also by Traits and Project using Update 1, and Class using Update 2.  NUnit translates any Categories and Properties used on your tests to Visual Studio as Traits.

Tests may be filtered in Visual Studio under Update 1 by Trait, Project, Error Message, File Path, Fully Qualified Name, Output and Outcome. Use the search edit box at the top of the list of tests to specify a filter.

Tests may be organized by play lists in Visual Studio under Update 2. Playlists is more or less equal to the old test lists from VS 2010.

Parametrized tests, like NUnits data driven tests, will show up as seperate test cases for each set of parameters.

Known Problems

  1. There is no test status in Visual Studio corresponding to NUnit's Inconclusive result, so tests with this result are reported as Not Run. Click on the individual test to see the result.

  2. Grouping by fixture is not yet available.in Visual Studio.

  3. Theories are reported as individual cases, rather as a single unit.

  4. Startup performance is substantially improved but is still slower than using NUnit directly.

  5. A VSIX adapter of older version will be used regardless of version of NuGet adapter.
    Workaround: Make sure you have upgraded VSIX adapter to latest version, or uninstalled it if you have NuGet adapter in a solution. The 0.95 and later coming versions will output their version number in the Output window under Tests, any older versions will not have any version number there.

Further information

For more information see the blogs by Charlie Poole and Terje Sandstrom
Also see the following MSDN ALM blog post:

  1. Part 3: Unit testing with Traits and code coverage in Visual Studio 2012 using the TFS Build – and the new NuGet adapter approach
  2. Part 2–Using Traits with different test frameworks in the Unit Test Explorer
  3. How to manage unit tests in Visual Studio 2012 Update 1 : Part 1–Using Traits in the Unit Test Explorer

Reporting Problems

Bugs should be reported using the separate test adapter bug tracker on Launchpad.