Frage

Bei meiner Arbeit führen wir eine Testgruppe durch, die aus etwa 3.000 separaten Testfällen besteht.Zuvor haben wir diese gesamte Testsuite auf einem Computer ausgeführt, was etwa 24 bis 72 Stunden dauerte, um den gesamten Testlauf abzuschließen.Wir haben jetzt unser eigenes System zum Gruppieren und Verteilen der Tests auf etwa drei separate Maschinen erstellt und die Tests werden priorisiert, sodass die Kerntests zuerst ausgeführt werden, um unmittelbarere Ergebnisse zu erzielen, und die zusätzlichen Tests ausgeführt werden, wenn eine Maschine verfügbar ist.

Ich bin gespannt, ob jemand eine gute Möglichkeit gefunden hat, seine Tests auf mehrere Maschinen zu verteilen, um die gesamte Testzeit für einen vollständigen Durchlauf zu verkürzen, und welche Tools dafür verwendet wurden.Ich habe einige Nachforschungen angestellt und es sieht so aus, als wäre es TestNG in diese Richtung bewegen, aber es sieht so aus, als ob es sich noch in einer ziemlich langen Entwicklungsphase befindet.

Wir planen nicht, einen unserer Tests neu zu schreiben, aber wenn wir neue Tests hinzufügen und neue Produkte oder Add-Ons testen, möchte ich in der Lage sein, mit der Tatsache klarzukommen, dass wir mit einer sehr großen Anzahl von Tests arbeiten.Auf der anderen Seite, wenn wir ein Tool finden können, das uns bei der Verteilung unseres Junit hilft 3.x Tests sogar auf sehr einfache Weise würde hilfreich sein, da wir dafür keine eigenen Werkzeuge pflegen müssten.

War es hilfreich?

Lösung

Ich habe einige Leute gesehen, die mit ihnen gespielt haben verteilte JUnit.Ich kann nicht besonders dafür garantieren, wie effektiv es ist, aber die anderen Teams, die ich gesehen habe, schienen der Meinung zu sein, dass es unkompliziert genug war.Hoffentlich hilft das.

Andere Tipps

Unsere Build-Leute verwenden Mozilla Tinderbox.Es scheint einige Haken für verteilte Tests zu haben.Es tut mir leid, die Einzelheiten nicht zu kennen, aber ich dachte, ich gebe Ihnen zumindest den Hinweis weiter.

Es ist auch schön, weil man sofort herausfinden kann, wann ein Build kaputt geht und welcher Check-in dafür verantwortlich sein könnte.

http://www.mozilla.org/tinderbox.html

Es gibt auch parallel-junit.Abhängig davon, wie Sie Ihre Tests derzeit ausführen, kann die Zweckmäßigkeit variieren. Die Idee besteht lediglich darin, Multithreading auf einem einzelnen System mit mehreren Kernen durchzuführen.Ich habe kurz damit gespielt, aber es ist eine Veränderung gegenüber der Art und Weise, wie wir derzeit unsere Tests durchführen.

Hudson, die kontinuierliche Integrations-Engine, die ich verwende, bietet auch einige Möglichkeiten, Testläufe zu verteilen (separate Jobs aggregieren die Ergebnisse in einem).

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