.net VS2010错误生成单元测试

.net VS2010错误生成单元测试,.net,visual-studio-2010,unit-testing,mstest,.net,Visual Studio 2010,Unit Testing,Mstest,我有一个.NET4DLL,生成单元测试时遇到问题。我使用的是VS2010标准。解决方案中的每个其他项目都会为类生成单元测试存根。对于其他程序集,我可以进入现有代码,右键单击类名,然后选择“创建单元测试”。我得到的选择窗口如下刚刚好 我确实需要对其中一个程序集进行介绍,但它不会使用上面提到的相同方法生成测试存根。我转到项目/程序集中的一个类,右键单击,选择“生成单元测试”,遇到以下错误: 单元测试生成错误:读取模块“xx.Core”时遇到以下错误:无法解析类型引用:[System.Web,版本=2

我有一个.NET4DLL,生成单元测试时遇到问题。我使用的是VS2010标准。解决方案中的每个其他项目都会为类生成单元测试存根。对于其他程序集,我可以进入现有代码,右键单击类名,然后选择“创建单元测试”。我得到的选择窗口如下刚刚好

我确实需要对其中一个程序集进行介绍,但它不会使用上面提到的相同方法生成测试存根。我转到项目/程序集中的一个类,右键单击,选择“生成单元测试”,遇到以下错误:

单元测试生成错误:读取模块“xx.Core”时遇到以下错误:无法解析类型引用:[System.Web,版本=2.0.0.0,区域性=中性,PublicKeyToken=xxxxxxxxxx]System.Web.Routing.RouteValueDictionary

据我所知,项目中没有直接引用错误消息中提到的System.Web的framework 2.0版本。使用名为grepWIN的工具搜索包含项目和.CS文件的目录,查看该引用的文本是否存在于任何文件中,结果为零。甚至可以同时引用system.web dll的2.0和4.0版本吗?如果可以,为什么要这样做


关于如何消除此错误消息以便我可以正确地删除一些单元测试,您有什么想法吗?

您是否使用NUNIT进行单元测试?如果是,默认情况下Nunit指向.NET2.0。您需要对nunit.exe.config文件进行适当的更改

请您在Windows资源管理器中导航到C:\Windows\Microsoft.NET\Framework。在那里,您将看到许多具有此类名称的文件夹:v1.0.xxxxx、v1.1.xxxxx、…、v4.0.xxxxx。写下v4.0.xxxxx文件夹的确切名称

使用文本编辑器打开文件nunit.exe.config,该文件位于以下文件夹:C:\Program Files\nunit 2.5.2\bin\net-2.0

在添加项下:

<startup>  <requiredRuntime version="v4.0.xxxxx" />  </startup>
<loadFromRemoteSources enabled="true" />

[用您写下的正确数字替换xxxxx]

并在下面加上:

<startup>  <requiredRuntime version="v4.0.xxxxx" />  </startup>
<loadFromRemoteSources enabled="true" />


以上的改变对我很有效。希望对其他面临这个问题的人来说。

我也有同样的问题,就是明显的收集


我的“解决方案”是将所有引用的项目及其引用的项目升级到.NET 4.0。然后成功了。。。。然而,这似乎有点奇怪,我完全可以做一些其他的事情,使问题消失。

我最近在我的一个项目中遇到了类似的问题。问题是,在我构建了我的库之后,我重命名了dll文件。我引用dll的项目仍然构建得很好,但是我在生成单元测试时收到了类似的错误,直到我在构建dll时将其重命名为原始名称。

我有同样的经验,但遗憾的是没有答案:-(OP正在使用测试生成功能。VS2010应该为单元测试以及文件、类和所有其他管道创建存根。您正在谈论添加一个类,以便使用NUnit框架实现单元测试。