NUnit未运行Visual Studio 2010代码


98

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

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

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


这个问题实际上与VS 2010或.NET 4代码有关吗?-我正在寻找一种允许我在Visual Studio 2010上运行NUNIT测试的工具,这个问题引起了误解。
Nicolas Irisarri 2010年

@Nicolas-它指的是.NET 4.0。
丹尼尔·怀特

Answers:


132

我已经下载了NUnit 2.5源码并在VS2010 beta中打开了VS2008解决方案。转换完成后,我打开了所有项目,并将所有项目的目标框架设置更改为“ .NET Framework 4.0”。然后,我构建了没有任何错误的解决方案。现在,我可以使用NUnit GUI应用程序运行针对.NET 4.0构建的测试。我尚未对该版本进行详尽的测试,因此可能会有问题,但出于我的目的,它可以正常工作。

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

在<configuration>下添加:

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

并在<runtime>下添加:

<loadFromRemoteSources enabled="true" />

3
好的,配置更新使其可以使用,但是我必须对必需的Runtime标记使用version =“ v4.0.21006”。
mkmurray

4
顺便说一句,配置文件的默认位置是:C:\ Program Files \ NUnit 2.5.3 \ bin \ net-2.0 \ nunit.exe.config将这些选项添加到配置中对我来说很有效。
布拉德·艾比

2
无法将其与最新的Nunit + .net4 RTM配合使用。我将建议的条目添加到nunit-console.exe.config中,但我得到:System.ArgumentException:net-4.0框架不可用尝试使用上述版本+ v4.0.30319我正在运行2008 R2 x64
AndreasÖhlund

1
对于控制台运行程序,请按照上述说明更改配置,但是对v.net 4.0的RTM版本使用v4.0.30319。另外,请使用以下命令行参数运行它:/framework=4.0.30319
Lance Fisher 2010年

1
我很幸运使用命令行选项/framework:net-4.0.30319而不是更改配置。这很有帮助,因此我可以控制哪些应用程序使用4.0 CLR,哪些不使用。
凯文·克罗威尔

25

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

<supportedRuntime version="v4.0.30319" />

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


17

您无需修改​​任何文件

只需打开此文件,一切都会正常

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


谢谢-解决了我的情况。必须使用x86版本的nunit进行x86版本的单元测试。CLR版本警告是一条红旗。使用nunit 2.5.10。
Nigel Touch'2

同样在这里,以某种方式必须使用x86版本
gavin 2012年

12

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


3
我从来没有能够使这个工作。我已经看到人们使用/framework:net-4.0.30319和其他各种变体。如果他们在站点文档中包含实际选项,那就太好了。
杰森·肖特

2
@Jason看来这仅适用于控制台版本。GUI版本没有此选项。
罗曼·斯塔科夫

+1表示此功能从2.5.5版开始!我有NUnit在我的一台机器上抛出ArgumentExceptions和NullReferenceExceptions,结果是因为版本2.5.0。
realMarkusSchmidt 2011年

2

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

概要分析过程终止。未建立Profiler连接。

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

NCover.Console.exe nunit-console-x86.exe-其他参数-

现在可以使用。


1
谢谢您,我遇到了同样的问题,您的修复程序解决了它!
CubanX 2010年

2

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


1

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


我正在运行15/03/2011下载的NUnit 2.5.9,这个问题对我来说不会消失。即使我尝试了建议的解决方案
DrLazer 2011年

1

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

工具->设置-> IDE支持

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


0

如果升级到nunit 2.5.5后遇到此问题,则需要将nant升级到最新版本,即.91 alpha。


0

发现从NUnit应用程序模板开始很有用。它支持VS C#Express,允许进行调试测试,并包含针对.NET 4.0的预编译NUnit。感谢作者一键创建新的测试项目。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.