Frage

Ich habe gerade Hudson installiert und es läuft wunderbar. Es baut, läuft JUnit-Tests und auch Checkanalyse.

Der nächste Schritt für uns wäre eine Installation zu erstellen, installieren und dann automatisierte Tests laufen auf der eigentlichen Installation. Ich möchte dann den Build fehlschlägt, wenn die Tests fehlschlagen oder zumindest irgendwie die Ergebnisse veröffentlichen. Ich denke, dass wir es einrichten würde, so dass ein Teil läuft in regelmäßigen Abständen oder manuell ausgelöst.

Wir verwenden InstallAnywhere für die Installation und IBM Rational Functional Tester für automatisierte Tests.

So Fragen sind: Wer ein ähnliches Setup erstellt? es irgendwelche Plugins, Tutorials oder andere Ressource, die mir weiterhelfen könnte. Oder haben Sie irgendwelche Tipps oder Ratschläge im Allgemeinen.

War es hilfreich?

Lösung

Wir haben einen ziemlich kompliziertes verteilte Build on Hudson laufen, es ist ein Prozess, der im Grunde folgt:

  1. Test unter Windows.
  2. Test auf OSX, führen Code Coverage & Push-Ergebnisse an den Server.
  3. Test auf OSX Tiger.
  4. Paket für OSX Leopard & Push-Build-Server.
  5. Paket für Windows & Push-Build-Server.
  6. Update Produkt-Website.

Wir verwenden keine InstallAnywhere oder Rational Functional Tester, aber haben ähnliche Arten von Mechanismen an ihrem Platz. Der Schlüssel wir es singen alle in Hudson zu machen gefunden wurde unsere verschiedenen Schritte von der Kommandozeile in der Lage laufen. Maven und entsprechender Plugins machten kurzen Prozess mit dieser Aufgabe. Also mein Rat wäre, nur das, mit was auch immer Build-Tool Sie verwenden (ant, maven,?) Konfigurieren, dass sie, so dass Sie Ihre Rational Functional Tester laufen und überall von der Kommandozeile mit einem einfachen Ziel zu Ihrem Build-Tool übergeben installieren ( dh mvn Test oder mvn assembly:. Montage)

Danach, stellen Sie sicher, was Maschine Hudson läuft auf hat alles installiert (zB Rational Functional Tester) und konfiguriert, so dass Sie die Befehlszeile und geben Sie in dem Ziel eröffnen können und haben die Tests korrekt ausgeführt werden.

Hooking es von diesem Punkt in Hudson oben auf ist ziemlich einfach -. Nur im Ziel übergeben, wenn Sie die Build-Konfiguration

Andere Tipps

Die Befehlszeilenreferenz für Rational Functional Tester:

http://publib.boulder.ibm.com/infocenter/rfthelp/v8r0m0/index.jsp?topic=/com.ibm.rational.test.ft.doc/topics/RobotJCommandLine.html

Beispielbefehl für einen Test ausgeführt werden:

java -classpath "C:\IBM\RFT\FunctionalTester\bin\rational_ft.jar" 
com.rational.test.ft.rational_ft -datastore \\My_project\AUser\RobotJProjects -user admin -project
\\My_project\AUser\TestManagerProjects\Test.rsp -build "Build 1" -logfolder "Default" -log  
"Al_SimpleClassicsA#1" -rt.log_format "TestManager" -rt.bring_up_logviewer true -playback 
basetests.SimpleClassicsA_01

Eine weitere Notiz, werden Sie zu konfigurieren Fenster mögen ordnungsgemäß auf dem Agent-Rechner, die die Tests ausgeführt werden. Dies ist keine Beratung speziell für Hudson oder RFT, sondern alle GUI-Automatisierungstools unter Windows. RFT wird eine interaktive Desktop-Umgebung benötigt für sie in der Lage sein, Schaltflächen zu klicken, etc. Wenn Sie Ihren Hudson Agenten als Windows-Dienst ausgeführt haben, wird es keine Desktop sein. Siehe folgende: Silverlight-Tests funktioniert nicht, es sei denn RDP-Verbindung offen

ich einige allgemeine Ratschläge zu diesem Thema haben, weil ich noch nicht diese selbst umgesetzt. Ich gehe davon aus Sie haben Hudson die RFT-Skripte automatisch für Sie über einen Build oder Hudson-Prozess laufen? Ich möchte auch etwas Ähnliches in meiner Organisation implementieren.

Ich habe noch nicht gelungen, dies zu implementieren, da die organisatorischen Zwänge, aber hier ist, was ich gedacht / bisher getan:

  1. Heruntergeladene Windows Prozess-Viewer, bekam den Befehl für die Tests ausgeführt werden.
  2. Made Shell-Skript aus ihm heraus, ausgesondert die Variablen usw.
  3. Der Zukunftsplan ist eine Windows-Slave-Maschine zu installieren, die alle Werkzeuge in ihm haben würden, die erforderlich wäre, wenn die Tests werden gekickt, zum Beispiel. die richtigen Versionen von Browsern und Umgebungsvariablen und andere Werkzeuge, die benötigt werden.
  4. Hudson würde einen Prozess beginnen, der die Shell-Skripten läuft erstellt, die alle läuft die RFT-Scripts und führt notwendige Operationen auf der Slave-Maschine.

Ich glaube, die beste Antwort ist, dass mit Hudson / Jenkins RFT Integration ein nutzloses Unterfangen ist.

Als diese IBM FAQ sagt, zu RFT zu machen arbeiten müssen Sie:

  • in der Maschine angemeldet werden;
  • der Bildschirm kann nicht gesperrt werden;
  • , wenn Sie aus der Ferne verbunden sind, können Sie die Verbindung Bildschirm nicht minimieren.

Sie können also nicht Jenkins / Hudson als Dienst ausgeführt, ist es nicht sehr sinnvoll zu machen. Sie müssen es von Ihrem protokollierten Konto ausgeführt werden. Wenn Sie in einem Firmencomputer (sehr wahrscheinlich, wenn Sie RFT verwenden) sind, müssen Sie wahrscheinlich ein verwenden Hack den Bildschirmschoner zu verhindern zu beginnen . Wenn der Bildschirm gesperrt ist, wird Ihre Tests nicht immer.

Es ist nicht sehr schwierig, Ihre Tests auf von der Kommandozeile laufen, die Sie gerade Pflege des Rückkehrcodes nehmen, wenn die Tests fehlschlagen und erfolgreich zu sein.

Jenkins / Hudson würden Sie auch einige Vorteile geben, wie die Tests mit der Versionskontrolle zu integrieren, wahrscheinlich automatisch die Tests laufen, wenn ein Commit gemacht wird. Es wäre auch Hilfe von E-Mails zu senden, wenn die Tests fehlschlagen.

Aber Sie würden immer noch die RFT-Protokolle mit irgendeiner Art von JUnit-Plugin integrieren müssen, um einen schönen Bericht zu haben. Sie würden auch haben Skript haben die Tests über die Befehlszeile ausgeführt werden.

Ich denke, es lohnt sich nicht die Mühe, eine kontinuierliche Integration Server mit RFT zu verwenden. Bessere nur Ihre Tests haben jeden Tag in Windows-Taskplaner ausgeführt wird. Es ist eine einfachere Lösung mit weniger Fehlerquellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top