VS11中的新Fakes框架允许您在单元测试项目中创建装配参考的假(模拟或存根)实现。当一个程序集伪造时,VS11会为每个伪造生成两个文件:应该将FakesAssemblies文件添加到源代码管理?
/FakesAssemblies/[Project].Fakes.dll
/FakesAssemblies/[Project].Fakes.xml
是否应将这些文件添加到源代码管理?我的假设是否定的,因为它们是自动生成的,但想知道是否有人有其他意见。
VS11中的新Fakes框架允许您在单元测试项目中创建装配参考的假(模拟或存根)实现。当一个程序集伪造时,VS11会为每个伪造生成两个文件:应该将FakesAssemblies文件添加到源代码管理?
/FakesAssemblies/[Project].Fakes.dll
/FakesAssemblies/[Project].Fakes.xml
是否应将这些文件添加到源代码管理?我的假设是否定的,因为它们是自动生成的,但想知道是否有人有其他意见。
自动生成不应该是存储库中出现的区分因素。毕竟,各种自动生成的文件都会经常出现 - 例如设计器文件。
问题是,生产额外的假货大会可能会非常耗时。 Microsoft发布guidelines关于如何尝试优化:
Fakes组件的编译可以显着增加构建时间。您可以通过在独立的集中式项目中为.NET系统程序集和第三方程序集生成Fakes程序集,从而最大限度地缩短构建时间。由于这些程序集很少在您的机器上更改,因此您可以在其他项目中重复使用生成的Fakes程序集。
因此,很少变化,基于.NET FCL /第三方的伪装应该是存储库的一部分,以加快构建过程。基于你自己的代码的那些可能是最好的。
根据http://hamidshahid.blogspot.com.au/2012/11/microsoft-fakes-framework.html
的“FakesAssemblies”文件夹,并在里面的所有文件生成 每当编译项目。这一点非常重要,因为如果您为 添加用于更换组件的伪造品,则生成 FakesAssemblies将确保所有更改都反映在 生成的程序集中。
而且in GitHub it is recommended排除他们的.gitignore
# Microsoft Fakes
FakesAssemblies
如果生成过程中不用担心代的时候,你可以你所需要的只是指定和disable stubs
mscorlib.fakes:
<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/">
<Assembly Name="mscorlib" Version="4.0.0.0" />
<StubGeneration Disable="true"/>
<ShimGeneration>
<Clear />
<Add FullName="System.Environment"/>
<Add FullName="System.TimeZoneInfo"/>
<Add FullName="System.DateTime"/>
</ShimGeneration>
</Fakes>
System.fakes:
<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/">
<Assembly Name="System" Version="4.0.0.0"/>
<StubGeneration Disable="true" />
<ShimGeneration Disable="true" />
</Fakes>