/ / Wie kann ich Ruby-Tests automatisch ausführen? - Ruby, Unit-Testing, Testing, Continuous-Integration

Wie kann ich Ruby-Tests automatisch ausführen? - Ruby, Unit-Testing, Testing, kontinuierliche Integration

Ich habe ein System, das sehr auf verschiedene angewiesen istWeb-APIs. Ich möchte meine API-spezifischen Tests mindestens einmal am Tag ausführen, um sicherzustellen, dass alle APIs noch einwandfrei und lebendig sind Ich möchte diese alle 24 Stunden ausführen. Wenn etwas kaputt geht, möchte ich eine Aktion ausführen (z. B. eine E-Mail oder eine SMS an mich).

So richten Sie automatisierte Ruby-Tests am besten ein und analysieren siedas Ergebnis? Kann ich einfach einen Cron-Job einrichten, um die .rb-Dateien zu verarbeiten? Wie ergreife ich eine Aktion und erkenne programmgesteuert, ob die Tests fehlschlagen? Vielleicht gibt es eine Art kontinuierliche Integrationslösung für RUby, die damit umgehen kann?

Antworten:

2 für die Antwort № 1

Ich habe gerade den Prozess der Einrichtung durchlaufen Hudson CI als meinen Integrationsserver verwenden dieses erstaunliche Tutorial von Dr. Nic. Es wird durch einen Edelstein installiert, der ziemlich vorkonfiguriert ist, und es war extrem einfach, mit der Arbeit zu beginnen.

Ich benutze Rspec und Gurke, und Hudson läuft allestestet, wann ein neues Commit für mein Git-Repository angezeigt wird. Wenn alle Tests bestanden wurden, wird der Code in meinem Hauptzweig zusammengeführt. Wenn ein Test fehlschlägt, hält er seine Pferde und schickt mir eine E-Mail.

BEARBEITEN:

Ich möchte auch zehn Daumen nach oben geben Chuck Norris Plugin für Hudson. Agile kann nicht besser sein als Pair Programming mit Walker, Texas Ranger.


0 für die Antwort № 2

Ruby hat Test :: Unit eingebaut, RSpec, ZenTest, shoulda, Gurke und wahrscheinlich viele weitere Tools zum Testen. Da Test :: Unit integriert ist, wird es häufig verwendet und ist das Ziel, das von den anderen Tools übertroffen werden muss.

ZenTest und RSpec können fortlaufend testen: Sie nehmen eine Änderung vor und speichern eine Datei. Sie sehen sie und führen die Testsuite aus. Das gefällt mir, weil ich dann sofort den Stand der Dinge kenne.

Ich habe keine Gurke benutzt, aber ich habe den Rest benutzt. Ich habe gehört, dass Gurke den Schwerpunkt auf Integrationstests legt, aber das könnte eher das Gefühl des Kommentators als das der Entwickler gewesen sein Liste der Tutorials für Gurken ist interessant zu stöbern. Insbesondere gibt es "s webrat: Automatisierte Abnahmeprüfung mit RSpec oder Gurke.

Jedes dieser Programme kann mit cron verkabelt werden, um regelmäßig ausgeführt zu werden. Behandeln Sie sie einfach wie alle anderen Befehlszeilenanwendungen.

Es sollte aber auch einfach sein, Webtests zu knüpfenSie müssen die benötigten Edelsteine ​​/ Module identifizieren und den Klebercode schreiben. Ich hatte keine Notwendigkeit für ein solches Biest, wie ich es mit Mechanize und / oder einem der anderen HTTP-Edelsteine ​​und Nokogiri zum Durchsuchen der Seiten.