Bei meiner Arbeit führen wir eine Testgruppe durch, die aus etwa 3.000 separaten Testfällen besteht. Zuvor hatten wir diese gesamte Testsuite auf einer Maschine ausgeführt, was ungefähr 24-72 Stunden dauerte, um den gesamten Testlauf abzuschließen. Wir haben nun ein eigenes System für die Gruppierung und Verteilung der Tests auf ungefähr drei verschiedenen Maschinen geschaffen, und die Tests werden priorisiert, so dass die Kerntests für unmittelbarere Ergebnisse zuerst ausgeführt werden und die zusätzlichen Tests ausgeführt werden, wenn ein verfügbarer Computer verfügbar ist.
>Ich bin neugierig, ob jemand eine gute Möglichkeit gefunden hat, seine Tests auf mehrere Maschinen zu verteilen, um die gesamte Testzeit für einen vollständigen Lauf zu reduzieren und welche Werkzeuge dafür verwendet wurden. Ich habe etwas recherchiert und es sieht so aus, als wäre TestNG in diese Richtung zu bewegen , aber es sieht so aus, als wäre es immer noch unter ziemlich viel Entwicklung.
Wir planen nicht, einen unserer Tests neu zu schreiben, aber wenn wir neue Tests hinzufügen und neue Produkte oder Add-Ons testen, würde ich gerne mit der Tatsache umgehen können, dass wir mit sehr vielen davon arbeiten Tests. Auf der anderen Seite, wenn wir ein Werkzeug finden, das helfen würde, unsere Junit 3.x
-Tests sogar auf sehr einfache Weise zu verteilen, wäre hilfreich , da wir unsere eigenen Werkzeuge nicht pflegen müssten um das zu tun.
Ich habe einige Leute gesehen, die mit verteilten JUnit gespielt haben. Ich kann nicht besonders dafür bürgen, wie effektiv es ist, aber die anderen Teams, die ich gesehen habe, schienen zu denken, dass es einfach genug war. Hoffe das hilft.
Unsere Build-Leute benutzen Mozilla Tinderbox. Es scheint einige Haken für verteilte Tests zu haben. Es tut mir leid, dass ich die Details nicht kenne, aber ich dachte, ich würde wenigstens den Zeiger an dich weitergeben.
Es ist auch schön, denn du kannst es sofort herausfinden, wenn ein Build kaputt ist und was für ein Checkin der Täter gewesen sein könnte.
Es gibt auch parallel-junit . Je nachdem, wie Sie Ihre Tests derzeit ausführen, kann sich die Benutzerfreundlichkeit unterscheiden - die Idee besteht lediglich darin, Multithread auf einem einzelnen System mit mehreren Kernen durchzuführen. Ich habe kurz damit gespielt, aber es ist eine Veränderung gegenüber dem, wie wir unsere Tests derzeit durchführen.
Hudson , die Continuous Integration Engine, die ich verwende, hat auch einige Möglichkeiten, den Testlauf zu verteilen (getrennte Jobs aggregierte Ergebnisse in einem ).
Tags und Links java testing enterprise