Meine Erfahrungen umfassen CruiseControl.NET und Team Foundation Build. Ich bin selbst ein .NET-Entwickler. Diese stammen aus meinen Erfahrungen und umfassen nur die Erfahrungen, bei denen wir im Rahmen des Erstellungsprozesses Tests durchgeführt haben. Wenn sie also nicht zu Ihrer Umgebung passen, tut mir leid.
Ich frage mich auch, ob es notwendig ist, eine bestimmte Engine zu haben, um die Tests auszuführen, oder ob es ausreicht, sie in unsere Continuous Integration Engine zu integrieren
Wenn Sie bei jedem Check-in einen Build ausführen, können Builds ausgelöst werden, bevor der vorherige Build ausgeführt wird. Wie wollen Sie mit solchen Situationen umgehen? Wenn es beispielsweise 30 Minuten dauert, bis die gesamte Testsuite durchlaufen ist und der Code alle 15 Minuten eingecheckt wird, möchten Sie einige Builds überspringen? Einige Tests überspringen? Stapeln Sie sie, bauen Sie sie in der richtigen Reihenfolge und melden Sie sich bei Bob, dass er den Build vor 5 Stunden mit seinem Check-in abgebrochen hat?
Team Foundation Build kann mit 2010 mehrere Kerne für Builds und Tests verwenden (frühere Versionen konnten nur mehrere Kerne für C ++ - Builds verwenden). CruiseControl.NET kann separate Threads ausführen. Wenn Sie jedoch die Dokumentation lesen , scheint es, dass sich jedes Projekt in einem eigenen Thread befinden kann, Sie jedoch nicht mehrere Threads pro Projekt haben können (ich kann mich irren). Wir hatten noch nie eine Multi-Core-Maschine für Builds in den Umgebungen, in denen ich gearbeitet habe, daher kann ich nicht darüber sprechen, wie gut / fair / schlecht sie sind (oder falsch ich bin).
Bei einem früheren Arbeitgeber haben wir Python-Skripte in den Build aufgenommen, aber wir hatten keine Tests zum Testen von Python eingerichtet. NANT wurde für die .NET-Komponenten verwendet.
Ich frage mich auch, ob es notwendig ist, einen bestimmten Motor zu haben, um die Tests auszuführen
Ich hatte nie Zeit dafür, aber bei einem früheren Arbeitgeber (wir haben "Shrinkwrap" -Software verkauft) hatten wir viele Fehler, die betriebssystemspezifisch (und manchmal Service Pack-spezifisch) waren. Eines meiner Ziele war es, mehrere Tests einzurichten Computer mit unterschiedlichen Betriebssystemen (sowohl 32 + 64 Bit als auch alle verschiedenen Versionen von Desktop- und Server-Windows ab XP). Die Build-Maschinen waren einfache und ältere WinXP-Maschinen (oder virtuelle Maschinen), da dies die gesamte "Hardware" war, die uns von den Managern gestattet wurde. Stattdessen wurden alle Tests auf der Build-Maschine ausgeführt. Wir haben auch Validierungssuiten als Sammlungen von Komponententests eingerichtet, obwohl diese nicht für kleinere Aktualisierungen ausgeführt wurden.