Friday, April 20, 2007

Check-in policies (4 af 4) - Testing Policies

Ved hjælp af policy typen Testing Policy kan man sikre, at udvalgte tests kan eksekvere uden fejl på den kode man ønsker at checke ind. Jeg gennemgår her det relativt avancerede tilfælde hvor et team projekt består af flere solutions med forskellige testing policies. I den forbindelse benytter jeg Custom Path Policy fra Team Foundation Server Power Tool i kombination med Testing Policy.

Visual Studio Test Metadata fil

Før du kan tilknytte en testing policy til dit teamprojekt må du oprette en Visual Studio Test Metadata fil som beskriver hvilke unittests der potentielt kan indgå i din testing policy.

I VS2005 vælger du under menupunktet Testà Windows à Test Manager:

Herved fremkommer Test Manager vinduet. Højreklik på List of Tests for at tilføje en ny test liste:

Angiv Testlistens navn og en evt. beskrivelse:

Vælg OK og træk herefter de tests du ønsker skal indgå i denne testliste fra mappen All Loaded Tests til den nye testliste.

Tilføj Testing Policy

I Source Control Settings skærmbilledet (se Etablering af check-in policies) trykker du på knappen Add, for at få følgende vindue frem:

Vælg Testing Policy og tryk OK.

Tryk på Browse:

Naviger til den relevante Visual Studio Test Metadata fil:

Tryk OK, du ser nu et skærmbillede i stil med:

Heri vælger du den eller de testlister som du ønsker der skal checkes af denne policy:

Tryk OK for at returnere til Source Control Settings skærmbilledet:

Bemærk, at som der laves flere unittests kan disse fx tilføjes den relevante testliste, hvis de ønskes undersøgt ved check-in.

Testing Policies mod flere solutions

Hvis du som jeg har flere solutions i dit team projekt, kan du tilføje yderligere Test Policies som beskrevet ovenfor. Resultatet bliver flere Test Policies i Source Control Settings skærmbilledet:

Flere Test Policies mod forskellige solutions giver imidlertid problemer, idet check-in af ændringer i solution A, betinges både af den testing policy der hører til solution A, men også af den testing policy der hører til solution B. Og omvendt.

Vi har altså ved behov for at kunne styre for hvilken solution vores testing policy gælder.

En simpel løsning på dette problem findes i policy typen Custom Path Policy, som installeres med Team Foundation Server Power Tool. Bemærk det kan være nødvendigt også at
installere Domain-Specific Language Tools for Visual Studio 2005.

Custom Path Policy fungerer sammen med en eksisterende check-in policy (i vores tilfælde en Testing Policy). Den lader dig specificere en eller flere source control paths som den tilknyttede policy skal fungere imod.

Tryk i Source Control Settings skærmbilledet på knappen Add. Når Team Foundation Server Power Tool er installeret har du en række nye Check-in policy typer at vælge imellem. Vælg Custom Path Policy og tryk OK:

Du skal nu udpege den tilknyttede (Child) policy. I drop down’en vælger du den relevante testing policy. Bemærk policies af samme type er svære at se forskel på, idet de blot nummereres fortløbende i henhold til listen på Source Control Settings skærmbilledet:

Jeg ønsker denne testing policy anvendt på alt under source control path’en:

$/FagCentrum/FagCentrumV2/Forbundet.Tools.Validation/

Hvilket svarer til stier som opfylder det regulære udtryk:

^\$/FagCentrum/FagCentrumV2/Forbundet.Tools.Validation/(./)*$

Indtast dit regulære udtryk i feltet Source Control Path Filter:

Tryk herefter Add:

Tryk endelig OK.


Processen herover gentages for hver testing policy.


Bemærk, at den til Custom Path Policy’en knyttede (testing) policy skal disables for at undgå at policy’en køre to gange.



Vælg derfor at disable de relevante testing policies i Source Control Settings skærmbilledet:



Hermed har vi etableret vores check-in strategi.

No comments: