找不到NUnit程序集

时间:2008-10-07 00:56:36

标签: nunit

我之前使用过NUnit,但暂时没用过,而且从未在这台机器上使用过。我在Program Files下解压缩了2.4.8版本,并且在尝试加载测试时我一直收到此错误。

  

无法加载文件或程序集'nunit.framework,Version = 2.4.8.0,Culture = neutral,PublicKeyToken = 96d09a1eb7f44a77'或其依赖项之一。系统找不到指定的文件**

为了简化问题,我编译了最基本的测试文件。

using NUnit.Framework;

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

我已将“C:\ Program Files \ NUnit-2.4.8-net-2.0 \ bin”添加到我的PATH(并重新启动)。请注意,如果我将测试程序集复制到该文件夹​​中,那么

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

有效,但

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

C:\dev\nunit_test>nunit_console test.dll

因上述错误而失败。

据推测,我可以通过将NUnit.Framework dll复制到我项目的bin文件夹中来解决这个问题,但我不记得过去必须这样做。而且,我在GUI中得到了同样的错误。 GUI不应该知道框架的位置(即,在同一个文件夹中)吗?

@Scott,我没有使用Visual Studio。我使用以下行来编译测试项目。

%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

@devio,我尝试了同样结果的msi和zip。

5 个答案:

答案 0 :(得分:12)

确保您添加了对nunit.framework的引用。如果有,则确保该引用的属性将copy local属性设置为true。

答案 1 :(得分:11)

我遇到了同样的问题,我使用NUnit-2.4.8-net-2.0.msi进行了安装。 扩展上面的“添加到gac”评论,这就是我所做的:

  • 打开“visual sudio命令提示符(通常:确保gacutil在您的路径中)”和“cd”C:\ Program Files \ NUnit 2.4.8 \ bin“

  • 从gac取消注册您的nunit条目。您可以通过查找gac中注册的nunit条目来执行此操作:

gacutil / l | find / i“nunit”> temp.bat&&记事本temp.bat

  • 将nunit.core和nunit.framework行添加到“gacutil / uf”,即:

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

  • 运行您的bat文件以删除它们: temp.bat

  • 注册您需要的nunit dll:

gacutil / i nunit.core.dll

gacutil / i nunit.framework.dll

答案 2 :(得分:9)

如果使用NUnit-2.4.8-net-2.0.msi进行安装,则NUnit程序集将添加到GAC。

您也可以通过VS2005命令提示符中的runnig gacutil手动重新安装。

答案 3 :(得分:2)

请注意,当前的NUnit安装(2.5.10)不会在GAC上自动注册。如果你必须使用GAC,请通过gacutil / i注册,其中nunitframeworkpath通常是%Program Files%\ NUnit \ net-2.0 \ framework \ nunit-framework

答案 4 :(得分:1)

当我尝试将新的测试程序集添加到现有的NUnit测试项目时,我今天收到此错误消息。看来我的测试项目有多个路径引用相同的nunit.framework.dll程序集。

如果NUnit项目中有多个测试程序集,则可能需要验证测试项目中nunit.framework引用的Path属性。一旦我将它们匹配,错误消息便消失了。