Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

After installing NUnit from NuGet, how do I force TestDriven.Net to use the NUnit dll referenced by NuGet?

I am trying to setup a Visual Studio solution that facilitates:

  • BDD

  • Using SpecFlow http://www.specflow.org/

  • As described on TekPub here: http://tekpub.com/view/concepts/5

I would like:

  • To keep all references and dependencies under the root of my solution's directory structure

  • The ability to use the,"Test With NUnit",command when I right-click on my project that TestDriven.NET provides.

I do NOT want:

  • To use the version of NUnit that TestDriven.NET installs for itself

I do want:

  • The, "Test With NUnit", command to use the version of NUnit that NuGet installs under my solution's sub directories for me

More detail and what I have already tried:

When you install TestDriven.NET it places its own version of NUnit in a path like:

  • \Program Files (x86)\TestDriven.NET 3\NUnit\2.5

When you use NuGet to install the latest version of NUnit it places NUnit in a path like:

  • Solution_root\packages\NUnit.2.5.10.11092

NuGet automatically adds a reference to \packages\NUnit.2.5.10.11092\lib\nunit.framework.dll for you. That reference is pretty much worthless if you happen to want to easily execute NUnit tests with the TD.Net menu because TD.Net doesn’t actually use the NUnit dll that NuGet just setup for you.

  • How do I force TestDriven.Net's menu to use the referenced NUnit dll in my solution's path instead of the NUnit dll that it installs under \Program Files (x86)\TestDriven.NET 3\NUnit\?

OR

  • If that is not possible, is there an easy shortcut key/menu command to execute the SpecFlow tests with the NUnit that IS under my solution folder without using TestDriven.Net?

Why am I trying to do this?

I installed NUnit with NuGet so that I could keep the testing framework libs inside of my solution and under source control. I need the ability to reference things like nunit.framework.dll under my solution's path (Solution_root\packages\NUnit.2.5.10.11092) and NOT reference it from (\Program Files (x86)\TestDriven.NET 3\NUnit\2.5).

I already tried the suggestions here:

  • http://www.paraesthesia.com/archive/2010/05/03/how-to-run-a-different-nunit-version-with-testdriven.net.aspx

  • and it still seems to be launching TestDriven.Net's version of NUnit instead of the one NuGet installs for me.

I also do not want to manually copy over and replace the NUnit files installed by TD.Net as that doesn’t allow for solution-specific dependency files and isolation under source control.

like image 687
Kerry Avatar asked May 05 '11 00:05

Kerry


1 Answers

Not sure this is exactly what you're after, but here goes:

Under Visual Studio (i am using 2010):

  1. Go to Tools->Options->Test Driven->Test Runners
  2. This section lists all preconfigured test runners that ship with TD.NET.
  3. Run Regedit.
  4. Go to: *HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\MutantDesign\TestDriven.NET\TestRunners* This will be different under 32bit OS.
  5. Add a new key NUnit 2.5.X (simply copy another key and change whatever settings you need).

  6. Restart Visual Studio.

  7. Under the menu from step #1, you'll find your new test runner.
  8. Click it and Save.

From now on, your tests will run with the test runner you configured.

like image 173
lysergic-acid Avatar answered Oct 07 '22 12:10

lysergic-acid