| Jussi Seppälä's profile.NET kehitystäPhotosBlogLists | Help |
|
May 14 TFS ja yksikkötestausTeam Foundation Server on monessa mielessä hyvä peli. "Pelkästään" versiohallinnan uudet ominaisuudet ovat jo käyttämisen arvoisia. Sen avulla on mahdollista määritellä vaatimuksia (check-in policy) versiohallintaan palautettaville tiedostoille. Voidaan esimerkiksi vaatia, että kaikki muutokset on kommentoitu ja että muutos liittyy johonkin TFS workitemiin. Lisäksi koodia voi analysoida millä keinoin tahansa, koska näitä sääntöjä voidaan ohjelmoida myös itse. Tällöin voidaan esimerkiksi tehdä erilaisia koodin tarkastuksia kunkin yrityksen käytäntöjen ja koodaussääntöjen perusteella.
TFS:ssä voidaan myös määritellä palvelimella tehtäviä komponenttien käännöksiä. Tällöin kun ohjelmoija palauttaa koodin versiohallintaan, voi hän tehdä käännöksen ajamalla käännöksen palvelimella (team build). Hieno juttu on myös se, että käännösten yhteydessä voidaan ajaa yksikkötestit. Tai olisi, jos se vain onnistuisi. Ongelmana nimittäin on, että tällöin täytyy kertoa ajettavat yksikkötestit testauslistana (test list). Ongelmalliseksi tämän tekee se, että esim. minulla käytössä olevalla Visual Studio 2005 Team Edition for Software Developers -versiolla ei tuollaisia testilistoja saa määriteltyä. Tätä varten pitäisi olla ymmärtääkseni versio "Team Edition for Testers". Aika typerästi paketoitu tuo Developers-versio, koska sillä saa luotua yksikkötestejä, mutta ei testilistoja!
Tuohon löytyy kuitenkin kiertotie. Kaikki yksikkötesit pystyy nimittäin ajamaan Visual Studio 2005 -komentokehotteessa mstest-komentorivityökalulla. Tällöin voi testien ajamisen määritellä vaikka bat-tiedostoon. Tämän jälkeen yksikkötestien ajamiseen riittää aina tuon bat'in ajaminen. Jos haluaa vielä kikkailla, niin tuon bat'in ajamisen voi laittaa esim. web servicen ja/tai web -sovelluksen taakse, jolloin sen ajaminen remotena onnistuu myös. Niin ja toki sen voi ajaa myös suoraan sen team buildin yhteydessä, mutta tällöin on huomioitava, että mstest'in käyttö on tuskastuttavan hidasta ja tällöin käännösten tekeminenkin hidastuu. Jokainen mstest-ajo kopioi kaikki tarvittavat dll:t yksilölliseen hakemistoon TestResults-hakemiston alle. Tämä lienee yksi syy siihen, että homma on niiiiiiin hidasta.
(Entä, miten saat käyttöösi Visual Studio 2005 Command Promptin? No bat-komennossa vaikka alla olevalla tavalla. Siinä on myös mstest-kutsu, joka ajaa yhden yksikkötestin. @echo off
@call "C:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat" @call mstest /runconfig:path\localtestrun.Testrunconfig /testcontainer:path\Testcomponent.dll /test:testclass.testname Huom! Noita test caseja voi olla useita peräkkäin tuossa samassa mstest-kutsussa. Niiden järjestystä ei kuitenkaan voine määritellä mitenkään. Tällöin pitänee tehdä vain useampia mstest-kutsuja. ) |
|
|