2012-04-05 12 views
5

Nowa struktura Fakes w VS11 umożliwia tworzenie fałszywych (próbnych lub pośrednich) implementacji odniesień do zespołów w projekcie testu jednostkowego. Kiedy zestaw jest fałszywy, VS11 generuje dwa pliki dla każdego fałszywego:Czy pliki FakesAssemblies powinny zostać dodane do kontroli źródła?

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

Czy te pliki należy dodać do kontroli źródła? Zakładam, że nie, ponieważ są generowane automatycznie, ale zastanawiałem się, czy ktoś ma inne opinie.

Odpowiedz

5

Generowanie automatycznie nie powinno być czynnikiem dyskryminującym obecność w repozytorium. W końcu dość często trafiają tam różnego rodzaju automatycznie generowane pliki, na przykład pliki projektantów.

Problem polega na tym, że generowanie dodatkowych podróbek przez cały czas może być czasochłonne. Microsoft publikuje guidelines informacje na temat tego, jak możesz zoptymalizować:

Zestawienie podróbek może znacząco wydłużyć czas budowy. Można zminimalizować czas kompilacji, generując zestawy podróbek dla złożeń systemu .NET i zestawów innych producentów w osobnym scentralizowanym projekcie. Ponieważ takie zespoły rzadko zmieniają się na twoim komputerze, możesz ponownie wykorzystać wygenerowane zespoły Fakes w innych projektach.

Zatem rzadko zmieniające się fałszywe zestawy oparte na. FC FCL/3rd party powinny być częścią repozytorium, aby przyspieszyć proces kompilacji. Te oparte na twoim własnym kodzie są prawdopodobnie najlepiej generowane w locie.

1

Według http://hamidshahid.blogspot.com.au/2012/11/microsoft-fakes-framework.html

W „FakesAssemblies” folder i wszystkie pliki w nim są generowane gdy projekt jest opracowywany. Jest to ważne, ponieważ jeśli jesteś dodając podróbki do montażu dla zmieniającego się składnika, generacja FakesAssemblies zapewni, że wszystkie zmiany zostaną odzwierciedlone w zespole wygenerowanym .

także in GitHub it is recommended wyłączyć je w .gitignore

# Microsoft Fakes 
FakesAssemblies 

Jeśli martwisz się o godzinie generacji podczas kompilacji, można określić tylko to, co trzeba i 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> 
Powiązane problemy