【问题标题】:Moles is not working with MVC3 (System.Web.Mvc.dll)Moles 不适用于 MVC3 (System.Web.Mvc.dll)
【发布时间】:2011-10-05 09:34:54
【问题描述】:

我刚开始研究 moles 框架,从一开始我的体验就不是很好。 由于某种原因,我无法为 System.Web.Mvc.dll (v.3) 生成痣

我将尝试逐步解释我的问题

  1. 在刚刚创建的空解决方案中,我添加了两个项目(Asp.Net MVC 3 和测试)。
  2. 在测试项目中添加 C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 3\System.Web.Mvc.dll) 引用。
  3. 在我的测试项目中为 System.Web.Mvc.dll 添加 Moles Assemly(在 VS2010 中)。
  4. 构建项目。

在第 4 步中,我收到以下错误

    ------ Build started: Project: SampleMvcApplication.UnitTests, Configuration: Debug Any CPU ------
  Microsoft Moles v0.94.51023.0 - http://research.microsoft.com/moles - .NET v4.0.30319
  Copyright (c) Microsoft Corporation 2007-2010. All rights reserved.

  00:00:00.00> moles
    Moles : info : metadata : ignoring reference D:\Samples\Moles\SampleMVC\SampleMvcApplication\SampleMvcApplication.UnitTests\MolesAssemblies\System.Behaviors.dll
    Moles : info : metadata : ignoring reference D:\Samples\Moles\SampleMVC\SampleMvcApplication\SampleMvcApplication.UnitTests\MolesAssemblies\System.Moles.dll
    Moles : info : metadata : ignoring reference D:\Samples\Moles\SampleMVC\SampleMvcApplication\SampleMvcApplication.UnitTests\MolesAssemblies\System.Web.WebPages.Moles.dll
    Moles : info : configuration : diagnostic is on
    Moles : info : metadata : loading C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies\System.Web.Mvc.dll
    Moles : info : compilation : output assembly name: System.Web.Mvc.Moles
Moles : warning : metadata : failed to load module System.Web.Mvc.dll:
Moles : warning : metadata : Inheritance security rules violated by type: 'System.Web.Mvc.CompareAttribute'. Derived types must either match the security accessibility of the base type or be less accessible.
Moles : warning : metadata : Inheritance security rules violated by type: 'System.Web.Mvc.RemoteAttribute'. Derived types must either match the security accessibility of the base type or be less accessible.
Moles : error : code : assembly contains no types or failed to load properly
  00:00:00.20> moles generator 1 errors, 3 warnings
C:\Program Files (x86)\Microsoft Moles\bin\Microsoft.Moles.targets(79,5): error MSB3073: The command ""C:\Program Files (x86)\Microsoft Moles\bin\moles.exe" @D:\Samples\Moles\SampleMVC\SampleMvcApplication\SampleMvcApplication.UnitTests\obj\Debug\Moles\moles.args" exited with code -1005.
------ Build started: Project: SampleMvcApplication, Configuration: Debug Any CPU ------
  Microsoft Moles v0.94.51023.0 - http://research.microsoft.com/moles - .NET v4.0.30319
  Copyright (c) Microsoft Corporation 2007-2010. All rights reserved.

  00:00:00.00> moles
    Moles : info : metadata : loading C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\Assemblies\System.Web.WebPages.dll
    Moles : info : compilation : output assembly name: System.Web.WebPages.Moles
    Moles : info : code : found 71 types
    Moles : info : code : visibility: exported or assembly(System.Web.WebPages.Moles)
    00:00:00.34> code generation
      Moles : info : code : generating code at D:\Samples\Moles\SampleMVC\SampleMvcApplication\SampleMvcApplication\obj\Debug\Moles\swwp\m.g.cs
      00:00:00.46> stubs generation
        Moles : info : code : generated 23 stub types
      00:00:00.86> moles generation
        Moles : info : code : generated 33 mole types
    00:00:01.70> compiling
      Moles : info : compilation : Moles assembly: D:\Samples\Moles\SampleMVC\SampleMvcApplication\SampleMvcApplication\MolesAssemblies\System.Web.WebPages.Moles.dll
  00:00:02.43> moles generator 0 errors, 0 warnings
  SampleMvcApplication -> D:\Samples\Moles\SampleMVC\SampleMvcApplication\SampleMvcApplication\bin\SampleMvcApplication.dll
========== Build: 1 succeeded or up-to-date, 1 failed, 0 skipped ==========

我调查了我发现的所有主题,但没有任何帮助(我什至没有找到关于这个问题的一些好的答案和解释。)

这也无济于事(排除有问题类型的解决方案) Cannot use moles to mock the MVC framework

请指教。 谢谢。

【问题讨论】:

  • 我遇到了同样的问题,我猜是在 Pex 中用于 MVC3 时存在错误。

标签: asp.net-mvc asp.net-mvc-3 moles


【解决方案1】:

你在使用单元测试吗?如果是,请检查您的单元测试中是否有 MVC 3 dll 引用。

【讨论】:

  • 不。我正在使用 mstests。 Microsoft.VisualStudio.QualityTools.UnitTestFramework 我添加了 MVC 3 dll 来测试项目
【解决方案2】:

您不必直接添加对 moles 框架的引用。创建测试项目并添加对您正在测试的项目的引用后,右键单击该引用并选择添加 Moles 组件。这应该在您的测试项目的根目录中创建一个 .moles 文件。现在构建您的测试项目,一切顺利!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多