Att använda MSTest med Continuous Integration

I Visual Studio ingår ett testramverk kallat MSTest. Det har ungefär samma struktur som andra testramverk som t.ex. NUnit. Det finns dock en skillnad mellan ramverken när man vill köra tester på en byggagent via Continuous Integration. För NUnit lägger man oftast in dll:en för NUnit tillsammans med sin kod och pekar sedan ut den i bygget.

MSTest kan inte packas in som en del av koden utan måste man installera Visual Studio på byggagenten. Det är oftast något som åtminstone jag vill undvika. Att ha IDE installerat på byggagenten ökar risken att få med sig IDE-specifika beroenden som man inte vill ha. Från och med Visual Studio 2010 finns ett paket kallat Visual Studio Agents. Detta kan man installera på noder som ska köra automatiserade tester. Det känns som en bättre lösning än att installera hela Visual Studio.

Själv föredrar jag att använda NUnit i mina projekt eftersom det känns mer lättviktigt och portabelt. Om jag ändå måste köra MSTest så använder jag Visual Studio Agents.

Att undvika långsamma byggen

LångsammaByggenAutomatisering av byggen är en viktig del i Continuous Integration. Det är dock inte en engångsaktivitet. Man behöver följa upp hur bygget mår över tid. Allt eftersom man kommer längre in i projektet så tenderar det att ta längre tid att bygga systemet och köra alla tester. Eftersom det är viktigt att få snabb feedback på byggen så måste man analysera vad som tar tid och försöka hitta lämpliga åtgärder.

Om man har moduler som tar lång tid att bygga men som inte förändras ofta så kan man överväga att bryta ut dessa från huvudbygget och låta dem byggas i ett sekundärt bygge.

Enhetstester som körs i samband med bygget ska vara snabba att köra. Analysera om det finns tester som tar lång tid och se om de kan optimeras eller om de ska göras om till komponent- eller systemtester som kan köras i ett sekundärt bygge.

Om flera utvecklare uppdaterar versionshanteringssystemet samtidigt kan det uppstå kö på CI-servern vilket gör att man inte får tillräckligt snabb feedback (ett integrationsbygge bör ta max 10 minuter). Om man ser att det ofta blir köbildning så kan man eventuellt utöka resurserna med flera maskiner som kan bygga. Då kan man sprida ut lasten på olika noder. Detta är också att föredra om man använder sekundära byggen eftersom dessa ofta tar längre tid så bör de köra på en annan nod än huvudbygget som måste köra snabbt.

Ett program som låter dig hjälpa dina vänner på distans

Vad gör man när vänner och bekanta får problem med datorn och man inte har möjlighet att vara på plats hos dem? Att förklara över telefonen är svårt eftersom man inte ser vad den andra ser. En lösning på problemet är att använda programmet TeamViewer. Det låter dig fjärrstyra en dator samtidigt som den du hjälper också kan se skärmen. Programmet kräver ingen installation utan man kan köra igång programmet direkt vilket underlättar. Programmet klarar av att upprätta en fjärrsession även om det finns brandväggar, proxy-servrar och NAT-routers emellan. Det kan också användas för att fjärrstyra datorer som man har hemma när man är ute och reser.

Ett annat alternativ är att använda någon annan form av VNC-programvara (Virtual Network Computing) för att åstadkomma fjärrstyrning. Det kräver dock oftast mer kunskap och brukar kräva att man ändrar på regler i brandväggar m.m.

TeamViewer är kostnadsfritt för privatanvändare men om du vill använda det kommersiellt så måste du köpa en licens. Programmet finns för Windows, Mac och Linux. Dessutom finns det appar för såväl Android som iPhone (även om det blir lite väl smått).

TeamViewer

Appar för dig som vill undvika telefonförsäljare

Blir du irriterad på att bli uppringd av telefonförsäljare? Även om du har nix-registrerat din mobiltelefon, så finns det tyvärr oseriösa företag som ringer ändå. Du kan dock installera en app som visar om det är en försäljare som ringer.

Appen ”Vem ringde” är baserad på webbplatsen med samma namn. När det ringer så kollas numret mot en databas för att hitta vem det är som ringer (det går att välja vilka tjänster som ska användas för att kolla upp ett telefonnummer t.ex. eniro, 118100 m.fl.). Om det är nummer som finns i din kontaktlista så visas den informationen. Det går inte att blockera nummer i appen utan bara se vem som ringer. Jag brukar lägga in försäljare i en speciell grupp i min kontaktlista som jag sätter ljudlös ringsignal på.

Appen ”Truecaller” kan liknas vid en global telefonkatalog och ger dig möjligheten att blockera nummer. För att kunna använda appen krävs att man verifierar sitt nummer (vilket gör att det läggs in Truecallers databas över telefonnummer). Det finns mer inställningsmöjligheter i appen än vad som finns i ”Vem ringde”. Tyvärr känns gränssnittet rörigt och det är lätt att ställa in så att man blockerar lite för mycket (t.ex. alla nummer som inte finns i telefonens kontaktlista). Appen finns i en gratisvariant som visar reklam och en premiumversion utan reklam och som ger dig möjlighet att se vem som tittat på din profil och skicka gratis kontaktförfrågningar.

Det finns naturligtvis fler appar som gör liknande saker men dessa är de jag själv har testat.