NUnit assembly not found

﹥>﹥吖頭↗ 提交于 2019-12-20 09:55:13

问题


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.


回答1:


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.




回答2:


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.




回答3:


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
    



回答4:


Note that the current NUnit installation (2.5.10) doesn't register itself automatically in the GAC.

If you must use GAC, register it via gacutil /i <nunitframeworkpath> where nunitframeworkpath is usually %Program Files%\NUnit\net-2.0\framework\nunit-framework.




回答5:


I got this error message today when I tried to add a new test assembly to an existing NUnit test project. It seems that my test projects had multiple path references to identical nunit.framework.dll assemblies.

If you have more than one test assembly in your NUnit project, you may want to verify the Path property of the nunit.framework reference in your test projects. Once I made them match, the error message went away.



来源:https://stackoverflow.com/questions/176850/nunit-assembly-not-found

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!