【问题标题】:VS 2010 Error Generating Unit TestsVS 2010 错误生成单元测试
【发布时间】:2011-03-22 16:52:09
【问题描述】:

我有一个 .NET 4 DLL 无法生成单元测试。我正在使用 VS 2010 标准。解决方案中的每个其他项目都将为类生成单元测试存根就好了。对于其他程序集,我可以进入现有代码,右键单击类名,然后选择“创建单元测试”。我得到了很好的选择窗口。

我真正需要覆盖的一个程序集不会使用上述相同的方法生成测试存根。我转到项目/程序集中的一个类,右键单击,选择“生成单元测试”,我遇到了以下错误:

单元测试生成错误:读取模块“xx.Core”时遇到以下错误:无法解析类型引用:[System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=xxxxxxxxxxxx]System.Web .Routing.RouteValueDictionary

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

关于如何消除此错误消息以便我可以正确地删除一些单元测试的任何想法?

【问题讨论】:

  • 我有同样的经历,但遗憾的是没有答案:-(

标签: .net visual-studio-2010 unit-testing mstest


【解决方案1】:

ObservableCollection 也遇到了同样的问题。

我的“解决方案”是将所有引用的项目及其引用的项目升级到 .NET 4.0。然后它起作用了....但这似乎有点奇怪,我很可能会做其他事情导致问题消失。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      您是否使用 NUNIT 进行单元测试?如果是这样,默认情况下 Nunit 指向 .Net 2.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>
      

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

      并在添加下:

      <loadFromRemoteSources enabled="true" />
      

      上述更改对我有用。希望其他面临此问题的人。

      【讨论】:

      • OP 正在使用测试生成功能。 VS2010 应该为单元测试创​​建存根,以及文件、类和所有其他管道。您正在谈论添加一个类,以便可以使用 NUnit 框架实现单元测试。
      猜你喜欢
      • 2011-05-13
      • 1970-01-01
      • 2011-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-17
      相关资源
      最近更新 更多