Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

NUnit assembly not found

Tags:

nunit

I've used NUnit before, but not in a while, and never on this machine. I unzipped version 2.4.8 under Program Files, and I keep getting this error when trying to load my tests.

Could not load file or assembly 'nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77' or one of its dependencies. The system cannot find the file specified**

In order to simplify the problem, I've compiled the most basic possible test file.

using NUnit.Framework;

namespace test
{
    [TestFixture]
    public class Tester
    {
        [Test]
        public void ATest()
        {
            Assert.IsTrue(false, "At least the test ran!");
        }
    }
}

I've added "C:\Program Files\NUnit-2.4.8-net-2.0\bin" to my PATH (and rebooted). Note that if I copy the test assembly into that folder, then

C:\Program Files\NUnit-2.4.8-net-2.0\bin>nunit-console test.dll

works, but

C:\Program Files\NUnit-2.4.8-net-2.0\bin>nunit-console c:\dev\nunit_test\test.dll

and

C:\dev\nunit_test>nunit_console test.dll

fail with the above error.

Presumably I could get around this by copying the NUnit.Framework DLL file into my project's bin folder, but I don't remember having to do this in the past. Moreover, I get the same error in the GUI. Shouldn't the GUI know where the framework is located (that is, in the same folder)?

I'm not using Visual Studio. I use the following line to compile the test project.

%windir%\Microsoft.NET\Framework\v2.0.50727\csc.exe /r:"C:\Program Files\NUnit-2.4.8-net-2.0\bin\nunit.framework.dll" /t:library /out:test.dll test.cs

I tried both the .msi and the .zip file with the same result.

like image 545
harpo Avatar asked Oct 07 '08 00:10

harpo


3 Answers

Make sure you have added a reference to nunit.framework. If you have, then make sure the properties of that reference have the copy local property set to true.

like image 143
Scott Pedersen Avatar answered Nov 08 '22 03:11

Scott Pedersen


I had the same problem, and I had installed using NUnit-2.4.8-net-2.0.msi. Expanding on the "add to the GAC" comment, here's what I did:

  • Open your "Visual Studio command prompt (generally: make sure gacutil is in your path) and: cd "C:\Program Files\NUnit 2.4.8\bin"

  • Unregister your NUnit entries from the GAC. You can do this by finding the NUnit entries registered in the GAC:

    gacutil /l | find /i "nunit" > temp.bat && notepad temp.bat
    
  • Prepend the nunit.core and nunit.framework lines with "gacutil /uf", i.e.:

    gacutil /uf nunit.core,Version=2.4.2.0,Culture=neutral,PublicKeyToken=96d09a1eb7f44a77
    
    gacutil /uf  nunit.framework,Version=2.4.2.0,Culture=neutral,PublicKeyToken=96d09a1eb7f44a77
    
  • Run your .bat file to remove them: temp.bat

  • Register the NUnit DLL files you need:

    gacutil /i nunit.core.dll
    
    gacutil /i nunit.framework.dll
    
like image 40
Jeffrey Knight Avatar answered Nov 08 '22 03:11

Jeffrey Knight


If you install using NUnit-2.4.8-net-2.0.msi, the NUnit assemblies are added to the GAC.

You can also reinstall manually by running gacutil from the Visual Studio 2005 command prompt.

like image 31
devio Avatar answered Nov 08 '22 01:11

devio