Hi Gerard,
First, you need to decide whether you want to use a low-level or
high-level solution. The code snippet you gave is low-level, using
only the nunit framework. If you are using that approach, you can't
run nunit v2 tests at all. You can only run NUnit 3.5 tests because
you will have a reference to the nunit 3.5 framework. (That's why it's
"low") The framework source is in the GitHub nunit/nunit repo and is
installed using the nuget NUnit package.
All the other packages you mention are (different) high-level ways to
run tests. NUnit.ConsoleRunner is the console runner and engine.
NUnit.Engine is just the engine, for folks who are writing high-level
runners. The extensions are ... well... extensions. The test adapter
is an adapter for running NUnit tests under the Visual Studio Test
Explorer.
Installing the NUnit package alone should give you visibility to all
the public members of the framework assembly, provided you have using
statements for the classes you need. In particular, the
NUnitTestAssemblyRunner and DefaultTestAssemblyBuilder are in
NUnit.Framework.Api. So long as you are using that approach, get rid
of all the other references.
Good luck and keep asking questions!
Charlie