NUnit Console Runner NuGet Packages
There are three different versions of the NUnit Console runner on NuGet. This can be confusing for new users who don't know which one to pick. The NUnit team has tried to make it easier to pick by changing the titles and descriptions, but Visual Studio shows the package name. Extensions add to the confusion, thus this guide.
NUnit.ConsoleRunner
The NUnit.ConsoleRunner package contains just the NUnit 3 console runner without any extensions. Because it doesn't have extensions, it cannot run NUnit 2 tests, it cannot export NUnit 2 XML results and it cannot report test progress to TeamCity.
If you need any of functionality that is not shipped with NUnit.ConsoleRunner, you just need to install the NuGet packages for the extensions you need (see below) or to make it easy, install the NUnit.Console package. Any installed extensions are automatically found by NUnit.
After you install this package, the console runner will be in packages\NUnit.ConsoleRunner.3.5.0\tools\nunit3-console.exe
.
NUnit.Console
The NUnit.Console package is a meta-package that includes the NUnit.ConsoleRunner package and commonly used extensions. A common cause of confusion is that after you download this extension, it doesn't have any files in it. You will find the console runner in the NUnit.ConsoleRunner package. As I said, this is a meta-package, it is just a list of NuGet dependencies.
NUnit.Runners
Do not use this package This package has the most downloads because it is the original NUnit 2 package. This package is equivalent to the NUnit.Console package in that it includes the console and common extensions.
This package is deprecated and should no longer be used. Switch to the NUnit.Console package. The NUnit Console package is deprecated because it used to contain both the console and GUI runners. It was decided to split each out into it's own package.
Extensions
Rather than ship with functionality that you may not use, NUnit allows you to add extensions. Out of the box, NUnit can run NUnit 3 tests and produce NUnit 3 test results. If you need more, install an extension.
The most common extensions ship with the NUnit.Console package and are,
- NUnit.Extension.NUnitProjectLoader - Loads the NUnit project file format
- NUnit.Extension.VSProjectLoader - Loads Visual Studio projects and solutions
- NUnit.Extension.NUnitV2ResultWriter - Writes test results in the NUnit 2 legacy format
- NUnit.Extension.NUnitV2Driver - Runs tests written with the NUnit 2.x framework
- NUnit.Extension.TeamCityEventListener - Reports test progress and results to TeamCity
Which Package?
Use the NUnit.ConsoleRunner package and add any extensions that you need. The fewer extensions that you have, the quicker NUnit will start up and run your projects.
If you don't want to think about it, install the NUnit.Console package.