Automatyzacja projektu z MSBuild-em - 7. Inputs i Outputs, czyli fast & furious

Jul 30, 2008 - 4 minute read

Podczas kompilacji często możemy dostrzec następujący komunikat. CoreCompile: Skipping target "CoreCompile" because all output files are up-to-date with respect to the input files. Jest to efekt funkcjonalnosci budowy przyrostowej - “incremental build”. Dzieki niej nasze skrypty mogą być o wiele wydajniejsze. Każdy target może mieć parametry Inputs i Outputs. Przed wykonaniem targetu MSBuild sprawdza timestamp plików w Inputs plikami w Outputs. I jeżeli Inputs > Outputs, wówczas przystępuje do wykonania zadania a jeżeli Inputs =< Outputs wówczas “pomija” zadanie z uwzględnieniem “output inferral” … o tym pózniej.

Automatyzacja projektu z MSBuild-em - 6. Numer wersji z SVN revision

Jul 25, 2008 - 4 minute read

Tym razem zajmiemy się dynamiczną kompilacją, która wykona się również podczas budowy w Visual Studio. Naszym celem będzie stworzenie pliku “AssemblyInfo.cs” oraz dynamiczne włączenie go do kompilacji. Efektem tego, będzie brak AssemblyInfo w naszej strukturze plików widocznej w “Solution Explorer”. Nie będzie to kusiło żadnego z członków zespołu aby go modyfikować. Parametry do jego zawartości będą w centralnym miejscu. W tym odcinku pojawi się nowy plik - “tools\msbuild\rod.Commons\rod.Commons.Targets”. W nim znajdują się taski, które będą opisane poniżej.

Automatyzacja projektu z MSBuild-em - 5. Makefile z Mono

Jul 24, 2008 - 7 minute read

W tym odcinku chciałbym przedstawić jak można dynamicznie budować kompilację, nie używając do tego w ogóle Visual Studio. W następnym odcinku temat będzie podobny, ale już z uwzględnieniem Visual Studio. Za przykład posłuży nam projekt, który oryginalne był tworzony pod mono z wykorzystaniem plików Makefile. Mowa tu o FaRetSys aka eithne. Do budowy wykorzystamy źródła wersji 0.4.2. Aby być niezależnym oraz nie modyfikować plików źródłowych w żaden sposób, przyjąłem następującą strukturę: ..

Automatyzacja projektu z MSBuild-em - 4a. TDD, prawie jak TestDriven.NET

Jul 17, 2008 - 2 minute read

Wcześniej już wspominałem, jestem strasznie leniwy. Nie lubię pokonywać setek kilometrów myszką, nie lubię pisać dwa razy tego samego, nie lubię często naciskać Alt+Tab … i wpadłem na taki pomysł. Teraz wystarczy zamapować klawisze, np… … i prawie jak TestDriven.NET :) A teraz mała opowiastka … Ostatnio, w trakcie rozmowy rekrutacyjnej w ramach poszukiwania pracy, spytałem osobę, która przeprowadzała ze mną wywiad, czy w swoich projektach wykorzystują TDD. Okazało się, że chcieliby, ale tak nie do końca bo mają testy własne napisane we frameworku X, który znają, a dostali jeszcze w spadku poprzednia wersję, którą miała napisane testy we frameworku Y i niby teraz trzeba by przepisać te testy a nie ma czasu etc etc ?!?!?

Automatyzacja projektu z MSBuild-em - 4. TDD

Jul 16, 2008 - 4 minute read

W tym odcinku zajmiemy się testowaniem.

Rozdzielna budowa

Na początek warto stworzyć dwa pomocnicze targety: “BuildApp” oraz “BuildTest”. Pierwszy z nich będzie oczywiście budował projekty składające się na aplikację, a drugi testy. Do tego potrzebujemy listy projektów z rozbiciem na dwa typy. To zrobi dla nas target “GetProjectsFromSolution”, który umieszczamy w Default.proj