【问题标题】:NUnit isn't running Visual Studio 2010 codeNUnit 没有运行 Visual Studio 2010 代码
【发布时间】:2009-05-30 19:46:46
【问题描述】:

我正在尝试将 Visual Studio 2010 beta dll 加载到 NUnit GUI 中。我收到一个弹出错误。

此程序集由比当前加载的运行时更新的运行时构建,无法加载。您可能正在尝试使用比当前运行 NUnit 的版本更高版本的 CLR 加载程序集构建。

如何强制可执行文件在 .NET 4 下运行?

【问题讨论】:

  • 这个问题实际上与 VS 2010 或 .NET 4 代码有关吗? -- 我正在寻找一种允许我在 Visual Studio 2010 上运行 NUNIT 测试的工具,而这个问题具有误导性。
  • @Nicolas - 它指的是 .NET 4.0。

标签: visual-studio-2010 visual-studio debugging nunit


【解决方案1】:

我已经下载了 NUnit 2.5 源代码并在 VS2010 测试版中打开了 VS2008 解决方案。转换完成后,我打开所有项目并将所有项目的目标框架设置更改为“.NET Framework 4.0”。然后我构建了没有任何错误的解决方案。我现在可以使用 NUnit GUI 应用程序运行为 .NET 4.0 构建的测试。我没有对此构​​建进行详尽的测试,因此可能存在问题,但就我的目的而言,它运行良好。

更新:不需要重建 NUnit。我发现如果您将以下内容添加到相关的 NUnit 配置文件中,您可以运行为 .NET 4.0 构建的测试 dll。

下添加:

<startup>
  <supportedRuntime version="v4.0.30319" />
</startup>

并在 下添加:

<loadFromRemoteSources enabled="true" />

【讨论】:

  • 好的,配置更新使它工作,但我必须使用 version="v4.0.21006" 作为我 requiredRuntime 标记。
  • 顺便说一句,配置文件的默认位置是:C:\Program Files\NUnit 2.5.3\bin\net-2.0\nunit.exe.config 将这些选项添加到配置中对我有用.
  • 无法让它与最新的 Nunit + .net4 RTM 一起使用。我将建议的条目添加到 nunit-console.exe.config 但我得到: System.ArgumentException: The net-4.0 framework is not available 尝试使用上述版本 + v4.0.30319 我正在运行 2008 R2 x64
  • 对于控制台运行器,如前所述更改配置,但对 .NET 4.0 的 RTM 版本使用 v4.0.30319。此外,使用以下命令行参数运行它:/framework=4.0.30319
  • 我很幸运地使用了命令行选项 /framework:net-4.0.30319 而不是更改配置。这很有帮助,因此我可以控制哪些应用程序使用 4.0 CLR,哪些没有。
【解决方案2】:

随着 .NET 4 的发布,我使用了

<supportedRuntime version="v4.0.30319" />

在 NUnit 2.5.4 exe.config 中而不是 requiredRuntime 中,以及如上所示的 loadFromRemoteResources 标记,都运行良好。谢谢!

【讨论】:

    【解决方案3】:

    您不必修改任何文件

    只要打开这个文件,一切都会好起来的

    C:\Program Files (x86)\NUnit 2.5.10\bin\net-2.0\nunit-x86.exe

    【讨论】:

    • 谢谢 - 解决了我的问题。必须使用 x86 版本的 nunit 进行 x86 编译的单元测试。 CLR 版本警告是一个红鲱鱼。使用 nunit 2.5.10。
    • 这里一样,不知何故必须使用x86版本
    【解决方案4】:

    NUnit 2.5.5 中,您可以在命令行中指定选项/framework=net-4.0,它与最新VS2010 版本生成的新程序集兼容。

    【讨论】:

    • 我一直无法让它工作。我见过人们使用 /framework:net-4.0.30319 和各种其他变体。如果他们在网站文档中包含实际选项会很好。
    • @Jason 看来这只适用于控制台版本。 GUI版没有这个选项。
    • +1 提到这从 2.5.5 版开始有效!我让 NUnit 在我的一台机器上抛出 ArgumentExceptions 和 NullReferenceExceptions,结果发现这是因为版本 2.5.0。
    【解决方案5】:

    建议的解决方案非常适合让 NUnit 运行。不幸的是,当我进入我的代码覆盖步骤时,NCover 开始给我:

    已分析的进程已终止。探查器 连接未建立。

    我发现的最佳解决方案是仅将“-x86”版本的 NUnit 与 NCover 一起使用:

    NCover.Console.exe nunit-console-x86.exe --附加参数--

    现在工作。

    【讨论】:

    • 谢谢你,我遇到了同样的问题,你的修复解决了!
    【解决方案6】:

    要从 Visual [C# 2010 Express 或以前的版本] 中找到您的 .net 4 版本,请转到菜单帮助项下的 Visual 应用程序的“关于”。它应该在窗口右上角的 Microsoft .NET Framework 行下显示为版本。

    【讨论】:

      【解决方案7】:

      我在运行 NUnit 2.4.8 时遇到了同样的错误消息。由于我有一段时间没有升级,我安装了当前的 NUnit (v2.5.9),发现它现在支持 VS2010 程序集。因此,如果您最近遇到此错误请检查您的 NUnit 版本:截至 2010 年 12 月(左右),唯一您需要做的就是升级 NUnit。

      【讨论】:

      • 我正在运行 2011 年 3 月 15 日下载的 NUnit 2.5.9,这个问题对我来说不会消失。即使我尝试提出的解决方案
      【解决方案8】:

      从 NUnit 2.5.10 开始,您可以在 GUI 运行器中启用 Visual Studio 支持:

      工具-> 设置-> IDE 支持

      之后,我能够成功附加到 nunit-agent.exe 进程,该进程在 .NET 4.0 应用程序域中运行您的程序集

      【讨论】:

        【解决方案9】:

        如果您在升级到 nunit 2.5.5 后遇到此问题,那么您需要将 nant 升级到对我来说是 .91 alpha 的最新版本。

        【讨论】:

          【解决方案10】:

          found 从 NUnit 应用程序 Template 开始很有用。它支持 VS C# Express,允许调试测试并包含用于 .NET 4.0 的预编译 NUnit。感谢作者,一键准备好新的测试项目。

          【讨论】:

            猜你喜欢
            • 2011-09-22
            • 2011-03-22
            • 1970-01-01
            • 2011-01-22
            • 2011-07-03
            • 1970-01-01
            • 1970-01-01
            • 2011-07-05
            • 2011-07-29
            相关资源
            最近更新 更多