【问题标题】:NUnit assembly not found未找到 NUnit 程序集
【发布时间】:2008-10-07 00:56:36
【问题描述】:

我以前使用过 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 不应该知道框架的位置(即在同一个文件夹中)吗?

我没有使用 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 /出:test.dll test.cs

我尝试了 .msi 和 .zip 文件,结果相同。

【问题讨论】:

  • 愚蠢的问题,但是您在测试项目中添加了对 NUnit 的引用?

标签: nunit


【解决方案1】:

确保您已添加对 nunit.framework 的引用。如果有,请确保该引用的属性将复制本地属性设置为 true。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,我使用 NUnit-2.4.8-net-2.0.msi 安装。在the "add to the GAC" comment 上扩展,这就是我所做的:

    • 打开您的“Visual Studio 命令提示符(通常:确保 gacutil 在您的路径中)并:cd "C:\Program Files\NUnit 2.4.8\bin"

    • 从 GAC 取消注册您的 NUnit 条目。您可以通过查找在 GAC 中注册的 NUnit 条目来做到这一点:

      gacutil /l | find /i "nunit" > temp.bat && notepad 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
      

    【讨论】:

    • 我遇到了同样的问题,检查 GAC 显示它丢失了。添加后问题就消失了。
    【解决方案3】:

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

    您还可以通过从 Visual Studio 2005 命令提示符运行 gacutil 手动重新安装。

    【讨论】:

    • 无论出于何种原因,即使在安装后我也遇到了这个问题,但是我自己将程序集添加到了 GAC,这已经成功了。
    • 只是一个更新,Windows 7 上的 NUnit 2.5.7 仍然是这种情况。我可以通过将 nunit.framework 放入 \windows\assembly 来构建测试。
    • @harpo 我需要这样做才能让我的 NAnt+NUnit 构建工作。谢谢!
    【解决方案4】:

    请注意,当前的 NUnit 安装 (2.5.10) 不会在 GAC 中自动注册。

    如果您必须使用 GAC,请通过gacutil /i <nunitframeworkpath> 注册,其中nunitframeworkpath 通常为%Program Files%\NUnit\net-2.0\framework\nunit-framework

    【讨论】:

      【解决方案5】:

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

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

      【讨论】:

        猜你喜欢
        • 2014-08-23
        • 1970-01-01
        • 1970-01-01
        • 2014-12-24
        • 2017-10-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-30
        相关资源
        最近更新 更多