20

我以前用过 NUnit,但没用过一段时间,也从来没有在这台机器上用过。我在 2.4.8 下解压缩了 2.4.8 版本Program Files,尝试加载测试时不断收到此错误。

无法加载文件或程序集 '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 文件,结果相同。

4

5 回答 5

12

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

于 2008-10-07T01:02:54.703 回答
11

我有同样的问题,我使用 NUnit-2.4.8-net-2.0.msi 安装。扩展“添加到 GAC”评论,这就是我所做的:

  • 打开您的“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
    
于 2009-03-27T01:20:58.603 回答
10

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

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

于 2008-10-07T01:05:05.947 回答
2

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

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

于 2011-10-18T19:34:06.370 回答
1

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

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

于 2010-08-19T17:05:55.803 回答