私の経験には、CruiseControl.NETとTeam Foundation Buildが含まれます。私自身も.NET開発者です。これらは私の経験からのものであり、ビルドプロセスの一部としてテストした経験のみが含まれます。したがって、環境に一致しない場合は、申し訳ありません。
また、テストを実行するために特定のエンジンが必要なのか、それとも継続的インテグレーションエンジンに統合するのに十分なのかについても考えています。
チェックインごとにビルドを行う場合、前のビルドの実行が完了する前にビルドをトリガーすることができます。このような状況にどのように対処しますか?たとえば、テストスイート全体を実行するのに30分かかり、コードが15分ごとにチェックインされる場合、いくつかのビルドをスキップしますか?一部のテストをスキップしますか?それらを積み重ねて、順番にビルドし、5時間前のチェックインでビルドを中断したボブに戻りますか?
Team Foundationビルドは、2010でのビルドとテストに複数のコアを使用できます(以前のバージョンでは、C ++ビルドにのみ複数のコアを使用できました)。CruiseControl.NETは個別のスレッドを実行できますが、ドキュメントを読むと、各プロジェクトは独自のスレッド上にある可能性がありますが、プロジェクトごとに複数のスレッドを持つことはできないようです(私は間違っている可能性があります)。私が作業した環境でビルド用のマルチコアマシンを使用したことがないので、それらがどれほど良い/公平/悪い(または私が間違っている)かについて話すことはできません。
以前のある雇用者では、ビルドにPythonスクリプトを含めましたが、Pythonをテストするためのテスト設定はありませんでした。NANTは.NETコンポーネントに使用されました。
また、テストを実行するために特定のエンジンが必要かどうかも疑問に思っています
私はそれをする時間はありませんでしたが、以前の雇用者(「シュリンクラップ」ソフトウェアを販売していました)には、オペレーティングシステム固有(および場合によってはサービスパック固有)のバグがたくさんあったため、私の目標の1つは複数のテストをセットアップすることでしたOSが異なるマシン(32ビットと64ビットの両方、およびXP以降のデスクトップおよびサーバーWindowsのさまざまな種類すべて)。ビルドマシンはシンプルで古いWinXPマシン(または仮想マシン)でした。これは、マネージャーが許可したすべての「ハードウェア」でした。代わりに、すべてのテストがビルドマシンで実行されました。また、単体テストのコレクションとして検証スイートを設定しましたが、これらはマイナーアップデートでは実行されませんでした。