Automatisierung mit NANA
           Documentation
                Release 0.1




                   Steinam




         ...
Inhaltsverzeichnis




1   Einführung                                                                                     ...
ii
Automatisierung mit NANA Documentation, Release 0.1


Inhaltsverzeichnis:




Inhaltsverzeichnis                          ...
Automatisierung mit NANA Documentation, Release 0.1




2                                                     Inhaltsverze...
KAPITEL 1




                                                                                      Einführung


NANT (htt...
Automatisierung mit NANA Documentation, Release 0.1




4                                                     Kapitel 1. E...
KAPITEL 2




                                    Installation der beteiligten
                                           ...
Automatisierung mit NANA Documentation, Release 0.1




Der Quellcode der entsprechenden Klassen sieht wie folgt aus:

usi...
Automatisierung mit NANA Documentation, Release 0.1



                    /// </summary>
                    /// <returns...
Automatisierung mit NANA Documentation, Release 0.1



       [Test]
       public static void testOne()
       {
        ...
Automatisierung mit NANA Documentation, Release 0.1



              Assert.AreEqual(c, z);
              object y = mySta...
Automatisierung mit NANA Documentation, Release 0.1


     • C:nant_stackStackTest: Quellcode der Testklassen




10      ...
KAPITEL 3




                                    Erstellen der Konfiguration


NANT erwartet eine Beschreibung der aufzuru...
Automatisierung mit NANA Documentation, Release 0.1




12                                                    Kapitel 3. E...
KAPITEL 4




                 Indices and tables


• Index
• Module Index
• Search Page




                             ...
Automatisierungmit NANT
Nächste SlideShare
Wird geladen in …5
×

Automatisierungmit NANT

1.443 Aufrufe

Veröffentlicht am

Veröffentlicht in: Bildung, Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.443
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
11
Aktionen
Geteilt
0
Downloads
22
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Automatisierungmit NANT

  1. 1. Automatisierung mit NANA Documentation Release 0.1 Steinam 26. 02. 2010
  2. 2. Inhaltsverzeichnis 1 Einführung 3 2 Installation der beteiligten Komponenten 5 2.1 Struktur des Beispielprojektes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 Ordnerstruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3 Erstellen der Konfiguration 11 3.1 Struktur der Konfigurationsatei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4 Indices and tables 13 i
  3. 3. ii
  4. 4. Automatisierung mit NANA Documentation, Release 0.1 Inhaltsverzeichnis: Inhaltsverzeichnis 1
  5. 5. Automatisierung mit NANA Documentation, Release 0.1 2 Inhaltsverzeichnis
  6. 6. KAPITEL 1 Einführung NANT (http://nant.sourceforge.net) ist ein Tool zum Erstellen von Skripten und ist damit ein wesentliches Element der Automatisation der Softwareentwicklung. Mit Hilfe von NANT ist es möglich, die Abläufe der verschiedenen Prozesse einer Softwareentwicklung unter einem Skript zusammenzufassen. Ein Vorläufer von NANT ist das java-basierte ANT (http://ant.apache.org), von dem es wesentliche Konzepte über- nommen hat. Das Microsoft-eigene Build-Tool msbuild (http://msbuild.microsoft.com) hat sich wiederun an NANT orientiert und weitere Elemente hinzugefügt. Wer innerhalb der .NET-Plattform entwickelt, sollte sich daher mehr mit MSBUILD als mit NANT beschäftigen. Im folgenden Tutorial soll innerhalb von 5 Runden das Zusammenführen unterschiedlicher Aspekte der Softwareent- wicklung dargestellt werden. • Runde 1: Installation der entsprechenden Komponenten • Runde 2: Löschen und Kompilieren des Quellcodes anhand verscheidener Variationen • Runde 3: Ausführen von Unit-Tests • Runde 4: Aufruf eines Installers • Runde 5: Generieren einer API-Dokumentation Das Tutorial setzt das .NET-Framework-SDK in der Version 4.0 voraus. Das .sln-File des Projektes ist mit der Version 11 definiert, welches die Verwendung von Visual Studio 2010 voraussetzt. Die verwendeten Tools sind: • NUNIT (http://www.nunit.org) zum Erstellen und Durchführen der Unit-Tests • Doxygen (http://www.doxygen.org) zum Erstellen der API-Dokuemntation • Innosetup (http://www.jrsoftware.org/isinfo.php) zum Erstellen des Installers 3
  7. 7. Automatisierung mit NANA Documentation, Release 0.1 4 Kapitel 1. Einführung
  8. 8. KAPITEL 2 Installation der beteiligten Komponenten NANT wird als einfache gepackte Datei zum Download angeboten und muss nicht weiter installiert werden. Die ausführbare Datei befindet sich im Unterordner bin. 2.1 Struktur des Beispielprojektes Beim Programm geht es um eine bereits in frühreren Zeiten verwendete selbstgeschriebene Stack-Klasse namens Stapel, die mit Hilfe von UnitTests (StackTest) überprüft wird. 5
  9. 9. Automatisierung mit NANA Documentation, Release 0.1 Der Quellcode der entsprechenden Klassen sieht wie folgt aus: using System; using System.Collections; namespace StackTest { /// <summary> /// Description of Stapel. /// </summary> public class Stapel { bool emptyState = true; //object myValue; tEST % GEHT SDO NICHT ArrayList myValue = new ArrayList(); /// <summary> /// Gibt an, ob der Stack leer ist oder nicht 6 Kapitel 2. Installation der beteiligten Komponenten
  10. 10. Automatisierung mit NANA Documentation, Release 0.1 /// </summary> /// <returns>true für leer, false für voll</returns> public bool isEmpty() { return emptyState; } /// <summary> /// test 4 macht Halten eines Objektes notwendig /// </summary> /// <param name="value"></param> public void push(object value) { myValue.Add(value); emptyState = false; } /// <summary> /// Wird durch den 4. test von void auf object geändert /// </summary> public object pop() { emptyState = true; return myValue; } } } Die entsprechenden UnitTests befinden sich im Projekt StackTest und halten eine Referen auf die Klassenbibliothek Stapel using System; using NUnit.Framework; namespace StackTest { /// <summary> /// Description of StapelTest. /// </summary> [TestFixture] public class StapelTest { static Stapel myStack; /// <summary> /// Wird bei jedem Aufruf einer testmethode vorher /// ausgeführt /// </summary> [SetUp] public void Init() { myStack = new Stapel(); } /// <summary> /// Create a Stack and verify that /// IsEmpty is true. /// </summary> 2.1. Struktur des Beispielprojektes 7
  11. 11. Automatisierung mit NANA Documentation, Release 0.1 [Test] public static void testOne() { Assert.IsTrue(myStack.isEmpty()); } /// <summary> /// Nach Hinzufügen eines Elementes muss /// isEmpty false zurückgeben /// </summary> [Test] public static void testTwo() { myStack.push("hello"); Assert.IsFalse(myStack.isEmpty()); } /// <summary> /// Hinzufügen - Wegnehmen --> isEmpty ergibt true /// </summary> [Test] public static void testThree() { myStack.push("hello"); myStack.pop(); Assert.IsTrue(myStack.isEmpty()); } /// <summary> /// Hinzufügen von hello und holen von hello muss eine ObjektGleichheit ergeben /// </summary> [Test] public static void testFour() { myStack.push("hello"); object x = myStack.pop(); Assert.AreEqual("hello", x); } /// <summary> /// Hinzufügen und Wegnehmen mehrerer Elemente muss jeweils Objektgleichheit ergeben /// </summary> [Test] public static void testFive() { string a = "hello"; string b = "mr."; string c = "steinam"; myStack.push(a); myStack.push(b); myStack.push(c); object z = myStack.pop(); 8 Kapitel 2. Installation der beteiligten Komponenten
  12. 12. Automatisierung mit NANA Documentation, Release 0.1 Assert.AreEqual(c, z); object y = myStack.pop(); Assert.AreEqual(b, y); object x = myStack.pop(); Assert.AreEqual(a, x); } } } 2.2 Ordnerstruktur Die Struktur des Dateisystems ist wie folgt: • C:nant_stack: Grundlegender Hauptordner • C:nant_stackapi_doc: Nimmt die von doxygen generierte API-Dokumentation auf • C:nant_stacksetup: Nimmt die Konfigurationsdatei von Innosetup sowie das Ergebnis des Innosetup-Comilers (Setup.exe) setup.exe auf. • C:nant_stacklogfiles: Nimmt die Logfiles auf • C:nant_stacknant_086bin: Ausführbare Datei nant.exe • C:nant_stackStapel: Quellcode der Stapel-Klasse 2.2. Ordnerstruktur 9
  13. 13. Automatisierung mit NANA Documentation, Release 0.1 • C:nant_stackStackTest: Quellcode der Testklassen 10 Kapitel 2. Installation der beteiligten Komponenten
  14. 14. KAPITEL 3 Erstellen der Konfiguration NANT erwartet eine Beschreibung der aufzurufenden Prozesse in einer Konfigurationsdatei. Diese wird standardmäßig default.build genannt. NANT sucht nach dem Aufruf im jeweils aktuellen Ordner nach dieser Datei. Andere Namen kann man per Parameter an NANT übergeben 3.1 Struktur der Konfigurationsatei Die Konfigurationsdatei wird mit Hilfe von XML-Tags beschrieben. Die grundlegende Struktur ist der sog. project - Tag, der ein Projekt beschreibt. Innerhalb dieser Struktur definieren sog. Target-Tags die einzelnen zu erledigenden Aufgaben. Innerhalb der Target-Struktur werden dann die einzelnen Aufgaben durch sog. Tasks definiert. Ein Beispiel für eine einfache Beschreibung könnte wie folgt aussehen: <project name="Teacher" default="rebuild"> <target name="compileDebug"> <exec program="${devEnvPath}"> <arg value="c:/nant_stack/StackTest/StackTest.sln" /> <arg value="/build" /> <arg value="Debug" /> </exec> </target> <target name="rebuild" depends="compileDebug" /> </project> </project> 11
  15. 15. Automatisierung mit NANA Documentation, Release 0.1 12 Kapitel 3. Erstellen der Konfiguration
  16. 16. KAPITEL 4 Indices and tables • Index • Module Index • Search Page 13

×