Geeks With Blogs

News



Google dast.blog();





These postings are provided "AS IS" with no warranties, and confer no rights.





dast.blog(); "Find a job you love, and you will never have to work a day in your life."

Gestern habe ich mich mal auf die Suche nach einem Unit-Testing Framework für den Pocket PC, sprich für das .NET Compact Framework, gemacht.

Mein Hauptaugenmerk habe ich dabei darauf gelegt, dass die Unit-Tests auch wirklich am Pocket PC, also auf der tatsächlichen Zielplattform, ausführbar sind.

Leider unterstützen die aktuellen Versionen der beiden gängigsten Unit-Testing Frameworks für .NET NUnit und csUnit noch nicht die mobile Version des .NET Frameworks.
Laut der NUnit-Roadmap sollte die Unterstützung des Compact Frameworks allerdings eines der nächsten Features sein, bis es aber soweit ist wird wahrscheinlich noch einige Zeit vergehen.

Fündig bin ich allerdings kurz darauf in der Mobile Client Software Factory der Microsoft Patterns & Practices Gruppe geworden.
Diese haben für den Test ihrer Application-Blocks ein kleines Unit-Testing Framework namens CFUnitTester entwickelt, das das Ausführen der Unit-Tests direkt am Gerät ermöglicht.

Da die Dokumentation zum CFUnitTester recht spärlich ist habe ich mal ein kleines Beispiel erstellt und möchte nun mein erworbenes Wissen in Form eines kleinen Tutorials weitergeben.

Bei dem Beispiel handelt es sich um einen Unit-Test für einen kleinen "nicht generischen" Stack.

Also, dann beginnen wir mal mit dem Tutorial!

Zuerst downloaden wir einmal die Mobile Client Software Factory der Microsoft Patterns & Practices Gruppe und installieren diese.

Als nächstes starten wir das Visual Studio 2005 und erstellen ein neues Projekt, und zwar einfach eine "Visual Studio Blank Solution".

 

Anschließend legen wir der Ordnung halber mal einen Ordner "Source" für den Quellcode des Stacks an.

 

Danach fügen wir diesem Ordner ein neues Projekt hinzu, und zwar eine "Class Library" für einen Windows Mobile 5.0 Pocket PC.

 

Die automatisch erzeugte Klasse "Class1" benennen wir anschließend in "Stack" um.

 

Ist das erledigt, ersetzen wir den automatisch generierten Inhalt der Klasse "Stack" in der Datei "Stack.cs" durch den nachfolgenden Code.

 

Anschließend legen wir uns wieder zwei Ordner an, um Platz für das Unit-Testing Framework CFUnitTester und den eigentlichen Unit-Test der Stack-Klasse zu schaffen.

 

Danach kopieren wir uns den CFUnitTester-Ordner aus dem Installationspfad der Mobile Client Software Factory in unseren Ordner mit der Beispielapplikation.

 

Nach dieser Aktion fügen wir die drei Projekte des CFUnitTester "GuiTestRunner", "TestRunner" und "UnitTesting" dem Ordner "CFUnitTester" hinzu.

 

 

Als nächstes erzeugen wir die eigentliche Test-Klasse für unseren Stack, indem wir dem Ordner "UnitTests" eine neue "Class Library" für einen Windows Mobile 5.0 Pocket PC hinzufügen.

 

Und wieder benennen wir anschließend die automatisch erzeugte Klasse "Class1" in "StackFixture" um.

 

Den automatisch generierten Inhalt der Klasse "StackFixture" in der Datei "StackFixture.cs" ersetzen wir wieder durch den nachfolgenden Code, der die einzelnen Test-Methoden beinhaltet.

 

Damit die Test-Klasse "StackFixture" auch kompilierbar ist, müssen wir noch die fehlenden Referenzen hinzufügen.

 

 

Als nächstes müssen wir noch das Ausgabeverzeichnis des Projekts mit unseren Test-Klassen umstellen, da das Unit-Testing Framework CFUnitTester nur im aktuellen Verzeichnis seiner GUI-Applikation "GuiTestRunner" nach Test-Klassen sucht.

 

 

Damit alle benötigten Dateien auf das Zielgerät kopiert werden, müssen alle Projekte im "Configuration Manager" auf "Deploy" gesetzt werden.

 

Anschließend können alle Projekte mittels "Rebuild Solution" kompiliert werden.

 

Nun setzen wir noch das "GuiTestRunner" Projekt als "StartUp Project" und starten das ganz Ding im Emulator oder am Zielgerät.

 

Nachdem der Emulator gestartet ist, sollte auch schon kurz darauf die GuiTestRunner-Applikation des CFUnitTester-Frameworks erscheinen.

 

Die Tests können nun mittels "Select All" und "Run Selected..." gestartet werden. Nachdem alle Tests durchlaufen wurden, erscheint eine Übersicht mit den Ergebnissen der Tests.

 

So, das wärs eigentlich! Ist eigentlich nur noch zu erwähnen, dass das ganze auch unter dem Pocket PC 2003 Betriebssystem läuft, wie die beiden folgenden Screenshots zeigen.

 

Ach ja, das von mir erstellte Beispiel findet ihr natürlich auch online unter http://homepage.uibk.ac.at/~csaf3425/CFUnitTestSample.zip zum Downloaden!

Na dann, auf ein erfolgreiches "Testgetriebenes Entwickeln" am Pocket PC!

Posted on Thursday, September 21, 2006 6:33 AM Programmieren | Back to top

Copyright © Daniel Strigl | Powered by: GeeksWithBlogs.net | Join free