2012-04-05 20 views
5

El nuevo marco de Fakes en VS11 le permite crear implementaciones falsas (simulacro o stub) de referencias de ensamblaje en un proyecto de prueba de unidad. Cuando se simuló una asamblea, VS11 genera dos archivos para cada falsa:¿Se deberían agregar los archivos FakesAssemblies al control de origen?

/FakesAssemblies/[Project].Fakes.dll 
/FakesAssemblies/[Project].Fakes.xml 

se debe agregar estos archivos al control de código? Mi suposición es no, porque se generan automáticamente, pero me pregunto si alguien tenía otras opiniones.

Respuesta

5

Ser autogenerado no debe ser factor discriminatorio para la presencia en el repositorio. Después de todo, todo tipo de archivos generados automáticamente se abren con bastante frecuencia, por ejemplo, archivos de diseño.

El problema es que generar ensamblajes falsos adicionales todo el tiempo puede llevar mucho tiempo. Microsoft publica guidelines sobre cómo puede intentar optimizar eso:

La compilación de ensamblajes Fakes puede aumentar significativamente el tiempo de compilación. Puede minimizar el tiempo de compilación generando los ensamblajes Fakes para ensamblados del sistema .NET y ensamblajes de terceros en un proyecto centralizado independiente. Debido a que dichos ensambles rara vez cambian en su máquina, puede reutilizar los ensamblajes Fakes generados en otros proyectos.

Por lo tanto, los conjuntos falsos basados ​​en .NET FCL/3rd-party y raramente cambian deben formar parte del repositorio para acelerar el proceso de construcción. Los que se basan en su propio código, probablemente se generen mejor sobre la marcha.

1

Según http://hamidshahid.blogspot.com.au/2012/11/microsoft-fakes-framework.html

El "FakesAssemblies" carpeta y todos los archivos que se generan cada vez que se compila el proyecto. Esto es importante porque si está añadiendo falsificaciones para el ensamblaje de un componente cambiante, la generación de FakesAssemblies asegurará que todos los cambios se reflejen en el ensamblaje generado .

también in GitHub it is recommended excluirlos en .gitignore

# Microsoft Fakes 
FakesAssemblies 

Si te preocupas por hora de la generación durante la construcción, sólo se puede especificar lo que necesita y 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> 
Cuestiones relacionadas