【问题标题】:Need help moving nUnit tests into separate project需要帮助将 nUnit 测试移动到单独的项目中
【发布时间】:2009-01-13 22:36:05
【问题描述】:

当单元测试类是主项目 (TestAccount) 的一部分时,一切正常。

我读过的每篇关于单元测试的文章都建议将测试放在一个单独的项目中,所以我...

  • 添加了另一个项目 (TestAccount.UnitTests) 解决方案
  • 将单元测试类 (AccountTests.vb) 移至 TestAccount.UnitTests
  • 并在 TestAccount.UnitTests 中添加了对 TestAccount 的引用(复制本地 = true)

解决方案编译时没有任何警告。但是,nUnit 无法访问主项目,并且每次测试都会出现以下错误:

System.IO.FileNotFoundException:无法加载文件或程序集“TestAccount,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null”或其依赖项之一。该系统找不到指定的文件。

我做错了什么?

(在将 nunit.framework.dll 添加到 GAC 之前,我遇到了类似的问题)

screenshot of Solution Explorer http://img440.imageshack.us/img440/4862/nunitsolutionexploreree3.jpg

Visual Studio 2005
.NET 2.0
nUnit 2.4.8(.NET 2.0 版本)

[编辑] 我只有在从 Visual Studio 运行 nUnit(作为外部命令)时才会遇到这个问题。如果我独立加载 nUnit 控制台,它工作正常。

[编辑] Omar:是的,我有其他项目的参考。这是screenshot of my solution explorer

我想我可能只需要单独运行 nUnit 控制台(而不是通过 VS 的外部工具)。

【问题讨论】:

    标签: .net visual-studio visual-studio-2005 nunit filenotfoundexception


    【解决方案1】:

    我发现 bug report 说 Visual Studio 错误地扩展了 TargetPath 和 TargetDir 宏。它们扩展到 obj\ 目录,而不是 bin\

    [更新] 问题/解决方案实际上在文档的Visual Studio Support 部分中进行了讨论。由于“目标”宏指向 obj\,因此您不能直接使用它们。我最终在 Arguments 字段中使用了以下表达式:

    $(ProjectDir)bin/Debug/$(TargetName)$(TargetExt)
    

    【讨论】:

      【解决方案2】:

      这听起来可能很愚蠢,但我要说的是显而易见的,您是否为您的测试项目提供了对另一个项目的引用?

      此类问题常见的其他问题是使用无法从其他项目/命名空间访问的内部类。

      【讨论】:

        【解决方案3】:

        还要确保您的程序集输出路径与您在 NUnit 配置中设置的路径相对应。我有相同的设置,但我不必设置 'copy local = true'

        【讨论】:

          【解决方案4】:

          问题是找不到应用程序本身还是应用程序的依赖项之一?您可以尝试使用 FileMon 或 Fusion Log Viewer 来查看到底是什么失败了。问题可能不在于找到应用程序本身,而在于找到另一个依赖项。确保所有依赖项都将 Copy Local 设置为 True。

          您究竟是如何在 VisualStudio 中启动 NUnit GUI 的?如果您在项目属性下设置“启动外部程序”,它会为您提供指定工作目录的选项。您可能需要将其更改为测试 dll 的构建位置。

          【讨论】:

            猜你喜欢
            • 2010-12-05
            • 2011-08-12
            • 2017-06-07
            • 2011-12-19
            • 1970-01-01
            • 2020-07-20
            • 2010-11-23
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多