Moles无法使用MVC3(System.Web.Mvc.dll)

时间:2011-10-05 09:34:54

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

我刚刚开始调查鼹鼠框架,从开始就没有真正好的经验。 由于某种原因,我不能为System.Web.Mvc.dll(v.3)

生成痣

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

  1. 在刚创建的空解决方案中,我添加了两个项目(Asp.Net MVC 3和Test)。
  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. 构建项目。
  5. 在第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

    请指教。 感谢。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您不必直接添加对moles框架的引用。创建测试项目并添加对正在测试的项目的引用后,右键单击该引用并选择Add Moles Assembly。这应该在测试项目的根目录中创建一个.moles文件。现在建立你的测试项目,你很高兴!